mad*_*ops 28 jquery touch ipad
我正在尝试为平板电脑实现触摸监听器,以触发某些操作,具体取决于它是向上还是向下移动.
我尝试了本机监听器:
($document).bind('touchmove', function (e)
{
alert("it worked but i don't know the direction");
});
Run Code Online (Sandbox Code Playgroud)
但我不知道如何确定方向.
这可能吗?
或者我需要使用touchstart/touchend,如果我需要这个,我可以在触摸运动停止之前确定方向吗?
如果我只能使用外部库,那么最好的是什么?
谢谢.
Aur*_*uau 54
我在Ipad中遇到了一些问题并用两个事件解决了它
var ts;
$(document).bind('touchstart', function (e){
ts = e.originalEvent.touches[0].clientY;
});
$(document).bind('touchend', function (e){
var te = e.originalEvent.changedTouches[0].clientY;
if(ts > te+5){
slide_down();
}else if(ts < te-5){
slide_up();
}
});
Run Code Online (Sandbox Code Playgroud)
And*_*ndy 37
您需要保存触摸的最后位置,然后将其与当前位置进行比较.
粗略的例子:
var lastY;
$(document).bind('touchmove', function (e){
var currentY = e.originalEvent.touches[0].clientY;
if(currentY > lastY){
// moved down
}else if(currentY < lastY){
// moved up
}
lastY = currentY;
});
Run Code Online (Sandbox Code Playgroud)
Jua*_*era 14
Aureliano的答案似乎非常准确,但不知何故它对我不起作用,所以给他学分我决定用以下方法改进他的答案:
var ts;
$(document).bind('touchstart', function(e) {
ts = e.originalEvent.touches[0].clientY;
});
$(document).bind('touchmove', function(e) {
var te = e.originalEvent.changedTouches[0].clientY;
if (ts > te) {
console.log('down');
} else {
console.log('up');
}
});
Run Code Online (Sandbox Code Playgroud)
我只是改变了'touchend'事件'touchmove'