移動端拖動小游戲

這次來個拖動的小游戲吧,格子隨機(jī),這里以編號標(biāo)識,其實(shí)就是里面的class,編號對應(yīng),底部小格子就可以拖曳到上面對應(yīng)位置,+1分。

拖動小游戲.png

html

<div class="dog"></div>
<footer>
    <ul></ul>
</footer>
<script src="app.js"></script>

app.js

$(function () {
/***************************************/   
    
/*              滑動事件                */
    
/***************************************/   
    lockScroll();
    //隨機(jī)生成dog結(jié)構(gòu)
    var arr1 = [];
    for(var i=0;i<25;i++){
        getx1(arr1);
    }
    function getx1(arr1){
        for(var i=0;i>-1;i++){
            var flag = true;
            var num1 = Math.floor(Math.random()*25)+1;
            for(var i in arr1){
                if(arr1[i] == num1){
                    flag= false;
                    break;
                }
            }
            if(flag == true){
                //console.log(num1);
                $(".dog").append("<div class='a"+num1+"'>"+num1+"</div>");
                arr1.push(num1);
                return;
            }
        }
    }
    //隨機(jī)生成底部mini dog結(jié)構(gòu)
    var arr2 = [];
    for(var i=0;i<25;i++){
        getx2(arr2);
    }
    function getx2(arr2){
        for(var i=0;i>-1;i++){
            var flag = true;
            var num2 = Math.floor(Math.random()*25)+1;
            for(var i in arr2){
                if(arr2[i] == num2){
                    flag= false;
                    break;
                }
            }
            if(flag == true){
                //console.log(num2);
                $("footer ul").append("<li class='a"+num2+"'>"+num2+"</li>");
                arr2.push(num2);
                return;
            }
        }
    }
    //開始拖曳
    var pressX = 0,
        pressY = 0;
    var obj = $('footer ul li');//觸發(fā)頁面
    var a,b,c;
    
    //手指按下時
    obj.bind('touchstart', function (event) {
        var touch = event.targetTouches[0];
        pressX = touch.pageX;
        pressY = touch.pageY;
        var current = $(this).attr("class");//獲取當(dāng)前結(jié)構(gòu)class
        var top = $(".dog div."+current).offset().top;//獲取目標(biāo)結(jié)構(gòu)top值
        var left = $(".dog div."+current).offset().left;//獲取目標(biāo)結(jié)構(gòu)left值
        $(this).removeAttr('style');
        console.log(top,left);
        a = top;
        b = left;
        c = current;
    }, false);
    
    //手指滑動時
    obj.bind('touchmove', function (event) {
        event.preventDefault();
        var touch = event.targetTouches[0];
        var deltaX = touch.pageX - pressX;
        var deltaY = touch.pageY - pressY;
        $(this).css({"-webkit-transform":"translate3d("+deltaX+"px,"+deltaY+"px,0)"})
    }, false);
    
    //手指離開時
    obj.bind('touchend', function (event) {
        var t = $(this).offset().top;
        var l = $(this).offset().left;  
        console.log(t,l);           
        if(t>a-25 && t<a+25 && l>b-25 && l<b+25){
            console.log("匹配");
            $(this).remove();
             $(".dog div."+c).addClass("old");
        }else{
            console.log("不匹配");
            $(this).css({"-webkit-transition":"0.3s ease -webkit-transform"});
            $(this).css({"-webkit-transform":"translate3d(0,0,0)"})         
        }
        var o = $(".dog").children(".old").length;//獲取已匹配的個數(shù)
        if(o == 25){
            alert("結(jié)束")
            obj.unbind();//解除綁定
        }
    }, false);
    
    //禁止頁面touchmove
    function lockScroll(){
        $('body').bind('touchmove',function(e){
            e.preventDefault();
        });         
    }
});

css

body {background: #333;font-family: "Microsoft Yahei"}
.dog {width:7rem;height:7rem;overflow: hidden;margin:0.5rem auto;}
.dog div {background: #14a72b;border:1px solid #000;display: inline-block;width:1.4rem;height:1.4rem;float:left;}
.dog .old {background:#be8824; }
footer {position: fixed;width:7rem; bottom:0;left:0.25rem;height: 1.4rem;}
footer ul li{background: #be8824;border:1px solid #000;display: inline-block;width:1.4rem;height:1.4rem;float:left;}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容