我想建立一个经典的画廊,用手指可以将照片向左或向右移动以查看下一张或上一张照片。我使用 jQuery 绑定事件 touchstart、touchmove、touchend 来使用属性 event.pageX 计算照片的位置。问题是当移动手指时页面开始滚动。touchmove 的监听器立即停止被调用。为了解决我在 touchmove 监听器中放置的问题,调用 event.preventDefault() 并定期调用监听器并且页面停止滚动。我希望手指可以移动照片,同时可以滚动页面。我在苹果网站上看到这种情况经常发生(参见这个页面http://www.apple.com/osx/),甚至这个脚本也这样做http://iosscripts.com/iosslider-jquery-horizontal-slider-for-iphone-ipad-safari/
我想知道幕后的概念。我不明白我必须做些什么来解决这个问题。我什至尝试使用 preventDefault 并手动设置由 pageY 计算的 $(window).scrollTop 但效果非常难看。