这更像是一个仅供参考。
我在使用 skrollr 为移动设备实现自动滚动功能时发现的优缺点如下:
我为触摸事件使用了两个库[jQuery Mobile,hammer.js] 我最终坚持使用hammer,因为我更喜欢文档。
我在 ipad 上使用它的方式很简单。我做到了,如果您点击并按住右侧屏幕,它会自动向下滚动,直到您松开为止。左边反之亦然。
我的问题是它无法读取发布事件并继续滚动,并且用户无法停止它。
折腾了一阵子后,我决定改变它。我所做的是放置两个用户可以点击的按钮,它会自动滚动到我整个 skrollr 动画的下一部分。
这是我编写的代码示例。
var ai = 0;
var positionArray = [0, 1244,3194,15468]
$(function () {
var rightArrow = document.getElementById('right-arrow')
var mcRight = new Hammer(rightArrow);
mcRight.on("tap", function (ev) {
ai++
s.animateTo(positionArray[ai])
//alert(s.getScrollTop())
});
var leftArrow = document.getElementById('left-arrow')
var mcLeft = new Hammer(leftArrow);
mcLeft.on("tap", function (ev) {
ai--
s.animateTo(positionArray[ai])
});
})
希望这可以帮助。我希望它是我原来的点击和按住方式,但是两个插件都在读取带有滚动的点击释放事件时遇到了问题。
另一个通过查看文档非常容易解决的问题是,无论动画部分的长度有多长,到达那里都需要 1 秒。如果它是一小部分很好,但如果你有一个很长的部分,它会很快擦过它。