我正在使用iScroll.js滚动浏览移动页面上的项目轮播.我发现以下修复程序侦听垂直移动并停止iScroll脚本控制,让原生垂直滚动发生:
onBeforeScrollStart: function(e) { try { point = e.touches[0]; pointStartX = point.pageX; pointStartY = point.pageY; } catch(e) {} null; },onBeforeScrollMove: function(e) { try { deltaX = Math.abs(point.pageX - pointStartX); deltaY = Math.abs(point.pageY - pointStartY); if (deltaX >= deltaY) { e.preventDefault(); } else { null; } } catch(e) {} }
我正在使用try {} catch {},因为它在浏览器中进行测试时遇到了一些问题(抱怨点未被定义).
我遇到的问题是它在iOS上运行良好,在多个i设备上进行了测试,但在Android上并不是那么好.如果用户尝试垂直滚动页面,首先将手指放在旋转木马上,页面不会滚动,因为iScroll仍然可以控制.
知道如何让它在Android上运行,或任何指向它可能出错的地方吗?
编辑:
一些调试,我发现可能为什么这不起作用.当用户触摸iOS上的屏幕时,坐标正在更新,但在Android上,只有第一组坐标被捕获.知道为什么会这样吗?