搜尋
首頁微信小程式微信開發微信公眾平台開發砸金蛋

微信公眾平台開發砸金蛋

Mar 07, 2017 am 10:30 AM
微信開發

砸金蛋被廣泛應用於慶典活動、商家促銷、電視娛樂等場合,它的趣味、懸念能迅速活躍現場氣氛。同樣,我們也可以將砸金蛋應用到WEB網站上,用於進行線上活動。本文將使用jQuery與PHP講解如何實作WEB砸金蛋程式。

微信公眾平台開發砸金蛋

 

 

準備

我們需要準備道具(素材),即相關圖片,包括金蛋圖片、蛋砸碎後的圖片、砸碎後的碎花圖片、以及以及錘子圖片。

HTML

我們頁面上要展現的是一個砸金蛋的台子,台上放了編號為1,2,3的三個金蛋,以及一把錘子。我們建立以下html程式碼:

<p class="egg"> 
    <ul class="eggList"> 
        <p class="hammer" id="hammer">锤子</p> 
        <p class="resultTip" id="resultTip"><b id="result"></b></p> 
        <li><span>1</span><sup></sup></li> 
        <li><span>2</span><sup></sup></li> 
        <li><span>3</span><sup></sup></li> 
    </ul> </p>

上述程式碼中,.hammer放置錘子,.resultTip用於砸蛋後顯示的結果,即有沒有中獎,三個li分別放置3個金蛋,我們用CSS來裝飾下效果。

CSS

.egg{width:660px; height:400px; margin:50px auto 20px auto;} 
.egg ul li{z-index:999;} 
.eggList{padding-top:110px;position:relative;width:660px;} 
.eggList li{float:left;background:url(images/egg_1.png) no-repeat bottom;width:158px; 
height:187px;cursor:pointer;position:relative;margin-left:35px;} 
.eggList li span{position:absolute; width:30px; height:60px; left:68px; top:64px; color:#ff0; 
 font-size:42px; font-weight:bold} 
.eggList li.curr{background:url(images/egg_2.png) no-repeat bottom;cursor:default;z-index:300;} 
.eggList li.curr sup{position:absolute;background:url(images/img-4.png) no-repeat;width:232px;  
height:181px;top:-36px;left:-34px;z-index:800;} 
.hammer{background:url(images/img-6.png) no-repeat;width:74px;height:87px;position:absolute;  
text-indent:-9999px;z-index:150;left:168px;top:100px;} 
.resultTip{position:absolute; background:#ffc ;width:148px;padding:6px;z-index:500;top:200px;  
left:10px; color:#f60; text-align:center;overflow:hidden;display:none;z-index:500;} 
.resultTip b{font-size:14px;line-height:24px;}


按照上面的代碼我們可以在頁面中看到一個完整的砸金蛋場景,注意我們使用了png圖片,如果你的客戶仍在使用ie6的話,你可能需要對png圖片的透明做處理,本文不做處理。

jQuery

接下來,我們要用jQuery程式碼來實現砸金蛋、碎蛋、展示中獎結果的整個過程。當然,老規矩,對於才用jQuery實現的實例程序,你必須先載入jQuery庫檔案。

首先,當老鼠滑向金蛋時,用於砸金蛋的錘子會僅靠金蛋右上方,可以使用position()來定位。

$(".eggList li").hover(function() { 
    var posL = $(this).position().left + $(this).width(); 
    $("#hammer").show().css(&#39;left&#39;, posL); 
})

然後,點擊金蛋,即揮舞錘子砸向金蛋的過程。我們在click中先把金蛋中的編號數字隱藏,然後呼叫自訂函數eggClick()。

$(".eggList li").click(function() { 
    $(this).children("span").hide(); 
    eggClick($(this)); 
});

最後,在自訂函數eggClick()中,我們使用jQuery的$.getJSON方法向後台data.php發送一個ajax請求,後台php程式會處理獎項分配並把中獎結果傳回。我們使用animate()來實現砸錘子的動畫,透過改變錘子的top和left位子來實現簡單的動畫效果,錘子砸下去後,金蛋樣式變為.curr,同時金花四濺,然後中獎結果. resultTip展示,有沒有中獎要看你的運氣和後台獎項設定的中獎幾率了。來看砸金蛋函數eggClick()的程式碼 

function eggClick(obj) { 
    var _this = obj; 
    $.getJSON("data.php",function(res){//ajax请求 
        _this.unbind('click'); //解除click 
        $(".hammer").css({"top":_this.position().top-55,"left":_this.position().left+185}); 
        $(".hammer").animate({//锤子动画 
            "top":_this.position().top-25, 
            "left":_this.position().left+125 
            },30,function(){ 
                _this.addClass("curr"); //蛋碎效果 
                _this.find("sup").show(); //金花四溅 
                $(".hammer").hide();//隐藏锤子 
                $('.resultTip').css({display:'block',top:'100px',left:_this.position(). 
                left+45,opacity:0}) 
                .animate({top: '50px',opacity:1},300,function(){//中奖结果动画 
                    if(res.msg==1){//返回结果 
                        $("#result").html("恭喜,您中得"+res.prize+"!"); 
                    }else{ 
                        $("#result").html("很遗憾,您没能中奖!"); 
                    } 
                });     
            } 
        ); 
    }); 
}

為了將砸金蛋程式更真實的結合到你的網站中,你可以在砸蛋前驗證會員身份,限制砸蛋次數、砸蛋中獎後留下聯絡方式等等措施,具體看網站需求了。

PHP

data.php處理前端發送的ajax請求,我們才用機率演算法,根據設定好的中獎機率,將中獎結果以json的格式輸出。  <br><br>

$prize_arr = array( 
    '0' => array('id'=>1,'prize'=>'平板电脑','v'=>3), 
    '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), 
    '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), 
    '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), 
    '4' => array('id'=>5,'prize'=>'Q币10元','v'=>20), 
    '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), ); 
 
foreach ($prize_arr as $key => $val) { 
    $arr[$val['id']] = $val['v']; 
} 
 
$rid = getRand($arr); //根据概率获取奖项id $res['msg'] = ($rid==6)?0:1; //如果为0则没中 $res['prize'] = $prize_arr[$rid-1]['prize']; //中奖项 echo json_encode($res); 
 
//计算概率 function getRand($proArr) { 
    $result = ''; 
 
    //概率数组的总概率精度 
    $proSum = array_sum($proArr); 
 
    //概率数组循环 
    foreach ($proArr as $key => $proCur) { 
        $randNum = mt_rand(1, $proSum); 
        if ($randNum <p></p><p>透過設定機率,我們可以看出,砸中平板電腦的幾率佔3%,砸不中的幾率佔50%,。 <br></p><p>更多微信公眾平台開發砸金蛋相關文章請關注PHP中文網! <br></p><p> </p>
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!