這次來個拖動的小游戲吧,格子隨機(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;}