摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。
演示下載地址:http://www.erdangjiade.com/js...
效果圖:
三個(gè)金蛋、一把錘子及中獎(jiǎng)結(jié)果#result_tip代碼如下:
錘子
1 2 3
jQuery
1、當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)position()來(lái)控制位置。
$(".egg_list li").hover(function() { var position_left = $(this).position().left + $(this).width(); $("#hammer").show().css("left", position_left); })
當(dāng)揮動(dòng)錘子砸向金蛋eggClick()前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。
$(".eggList li").click(function() { $(this).children("span").hide(); eggClick($(this)); });
最后,我們向后臺(tái)ajax.php發(fā)送一個(gè)ajax請(qǐng)求,后臺(tái)php程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。我們使用animate()來(lái)實(shí)現(xiàn)砸錘子的動(dòng)畫(huà),通過(guò)改變錘子的top和left位子來(lái)實(shí)現(xiàn)簡(jiǎn)單的動(dòng)畫(huà)效果,錘子砸下去后,金蛋樣式變?yōu)?curruent,同時(shí)金花四濺,最后展現(xiàn)中獎(jiǎng)結(jié)果,我們看下砸蛋的eggClick方法:
function eggClick(obj) { $.get("ajax.php",function(data) { if (obj.hasClass("current")) { alert("蛋都碎了一地,刷新重新來(lái)過(guò)吧!"); return false; } $(".hammer").css({ "top": obj.position().top - 55, "left": obj.position().left + 185 }); $(".hammer").animate({ "top": obj.position().top - 25, "left": obj.position().left + 125 },30, function() { obj.addClass("current"); //蛋碎效果 obj.find("sup").show(); //金花四濺 $(".hammer").hide(); $(".result_tip").css({ display: "block", top: "100px", left: obj.position().left + 45, opacity: 0 }).animate({ top: "50px", opacity: 1 }, 300, function() { if (data.msg == 1) { $("#result").html("恭喜您中得" + data.prize_title + "!"); } else { $("#result").html("Sorry,您沒(méi)能中獎(jiǎng)!"); } }); }); }, "json") }
最后我們看下ajax.php中獎(jiǎng)項(xiàng)設(shè)置和計(jì)算中獎(jiǎng)概率算法。
$prize_arr = array( "0" => array("id" => 1, "title" => "iphone5s", "v" => 5), "1" => array("id" => 2, "title" => "聯(lián)系筆記本", "v" => 10), "2" => array("id" => 3, "title" => "音箱設(shè)備", "v" => 20), "3" => array("id" => 4, "title" => "30GU盤(pán)", "v" => 30), "4" => array("id" => 5, "title" => "話費(fèi)50元", "v" => 10), "5" => array("id" => 6, "title" => "iphone6s", "v" => 15), "6" => array("id" => 7, "title" => "謝謝,繼續(xù)加油哦!~", "v" => 10), ); foreach ($prize_arr as $key => $val) { $arr[$val["id"]] = $val["v"]; } $prize_id = getRand($arr); //根據(jù)概率獲取獎(jiǎng)品id $data["msg"] = ($prize_id == 7) ? 0 : 1; //如果為0則沒(méi)中 $data["prize_title"] = $prize_arr[$prize_id - 1]["title"]; //中獎(jiǎng)獎(jiǎng)品 echo json_encode($data); exit; //以json數(shù)組返回給前端 function getRand($proArr) { //計(jì)算中獎(jiǎng)概率 $rs = ""; //z中獎(jiǎng)結(jié)果 $proSum = array_sum($proArr); //概率數(shù)組的總概率精度 //概率數(shù)組循環(huán) foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $rs = $key; break; } else { $proSum -= $proCur; } } unset($proArr); return $rs; }
通過(guò)ajax.php,我們可以看出共設(shè)置了7個(gè)獎(jiǎng)項(xiàng)并設(shè)置了中獎(jiǎng)概率,比如砸中”iphone5s“的幾率占5%,砸不中的幾率占10%,點(diǎn)擊演示砸金蛋demo來(lái)試試你的運(yùn)氣吧。
演示下載地址:http://www.erdangjiade.com/js...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/81993.html
摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...
摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...
摘要:演示下載地址效果圖三個(gè)金蛋一把錘子及中獎(jiǎng)結(jié)果代碼如下錘子當(dāng)鼠標(biāo)滑向金蛋時(shí),錘子會(huì)僅靠金蛋右上方,通過(guò)來(lái)控制位置。當(dāng)揮動(dòng)錘子砸向金蛋前,我們先把金蛋中的數(shù)字編號(hào)隱藏起來(lái)。最后,我們向后臺(tái)發(fā)送一個(gè)請(qǐng)求,后臺(tái)程序會(huì)處理獎(jiǎng)項(xiàng)分配并把中獎(jiǎng)結(jié)果返回。 演示下載地址:http://www.erdangjiade.com/js...效果圖:showImg(https://segmentfault.co...
摘要:它們的用處都是用來(lái)能讓數(shù)據(jù)正常插入到數(shù)據(jù)庫(kù)中,并防止注入,但是并不能做到防止注入。進(jìn)來(lái)抽獎(jiǎng)的用戶使用原子加鎖,實(shí)現(xiàn)抽獎(jiǎng)次數(shù)自增,當(dāng)抽獎(jiǎng)次數(shù)到達(dá)時(shí),返回不中獎(jiǎng)。 轉(zhuǎn)載于:https://zhuanlan.zhihu.com/p/...答案并非標(biāo)準(zhǔn),是作者經(jīng)驗(yàn)之談,僅供參考 mysql_real_escape_string mysql_escape_string有什么本質(zhì)的區(qū)別,有什么用處...
閱讀 822·2021-10-13 09:39
閱讀 3701·2021-10-12 10:12
閱讀 1753·2021-08-13 15:07
閱讀 1012·2019-08-29 15:31
閱讀 2888·2019-08-26 13:25
閱讀 1783·2019-08-23 18:38
閱讀 1885·2019-08-23 18:25
閱讀 1862·2019-08-23 17:20