javascript - 为什么我的这个事件只支持一次,再次拖拽就不起作用了
本文介绍了javascript - 为什么我的这个事件只支持一次,再次拖拽就不起作用了的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
为什么我的这串代码只能执行一次以后就没法触发事件了?
解决方案
事实上这个和translate有关,原因我还找不到,不过当使用translate时,如果拖动超过来原来的位置,那么touchmove就不再触发,而用translate3d就不会。
你可以试试这样。
var pagey1;
var pagey2;
var lastMove = 0;
function load() {
var obj=document.querySelector('.box');
obj.addEventListener("touchstart", touch,false);
obj.addEventListener("touchmove", touch,false);
obj.addEventListener("touchend", touch,false);
function touch(e) {
console.log(e.type);
e.target.cancelable = true;
var e = e||window.event;
switch(e.type) {
case "touchstart":
e.preventDefault();
pagey1 = e.touches[0].pageY;
console.log("start");
break;
case "touchmove":
e.preventDefault();
pagey2 = e.touches[0].pageY
obj.style.transform = "translate3d(0px, " + (pagey2- pagey1 + lastMove) + "px, 0px)";
break;
case "touchend":
lastMove = pagey2 - pagey1 + lastMove;
console.log("end");
break;
}
}
}
这篇关于javascript - 为什么我的这个事件只支持一次,再次拖拽就不起作用了的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文