ios6触摸事件处理javascript



我正在努力改进touchwipe js。我想只进行水平滚动,如果出现任何垂直滚动,让浏览器处理我的修复在ios5中效果很好,但在ios6中它会变得很好,知道吗?

http://archive.plugins.jquery.com/project/Touchwipe-iPhone-iPad-wipe-gesture

请在后面找到代码

function onTouchMove(e) {   
//var e = (e.changedTouches != undefined)? touches[0] : e; 
if(isMoving) {              
var x = e.touches[0].pageX;
var dx = startX - x;
if(Math.abs(dx) >= config.min_move_x)
{
if(config.preventDefaultEvents) { 
e.preventDefault();                 
}
cancelTouch();
if(dx > 0) {
config.wipeLeft();
}
else {
config.wipeRight();
}
return false;
}
else {
console.log('y moving.. ');
// attachTouch();
return true;
}
}
}

只是增加了一些细节。我正在尝试通过BXslider水平动画我的列表,它的工作原理很好。我想支持触摸事件,所以添加了触摸擦除jquery。但添加它给了一个问题,即水平滚动动画可以工作,但触摸页垂直滚动不工作。

所以我试图通过返回true来解决问题;如果它只有Y移动,在touchwipe js。这个修复程序在android4和ios5上运行良好,但在ios6中失败,如果我稍微用力垂直滚动页面(在椭圆/圆圈中移动手指4-5秒),它的freez bxslider动画。

进一步的调试给出了bxslider.gotoNextSlide()->调用Jquery$parent.animate()方法进行滑动的内部结果,该方法在主动滚动后在ios6中停止工作。

现在我被卡住了,无法理解为什么这个动画()停止工作??

例如>>>

http://jsfiddle.net/qtCHx/

这可能是由于这个错误造成的:http://bugs.jquery.com/ticket/12620

这里有一个临时解决方案:https://gist.github.com/3798925

最新更新