我使用skrollr为iOS制作了一个视差网站。我想以编程方式向下滚动到页面上的某个点。我使用过jquery滚动插件,它们可以在桌面上运行,但不能在移动设备上运行。如何使用jQuery模拟swipeup或以某种方式模拟滚动到另一个点?谢谢!
编辑:这不起作用的原因是在移动设备上,由于iOS在滚动期间停止动画,因此skrollr实际上不会滚动。相反,它会侦听触摸事件并移动元素。这就是为什么scrollTo插件不起作用的原因。 (来源:https://github.com/Prinzhorn/skrollr#mobile-support)
答案 0 :(得分:7)
实际上我只是意识到skrollr API内置了这个!
我可以调用skrollr.animateTo(400)
,其中skrollr是用于启动skrollr的变量。
希望这有助于其他人!
答案 1 :(得分:0)
这更像是一个FYI。
我在使用skrollr为移动设备实现自动滚动功能时发现的优点和缺点是:
我使用两个库进行触摸事件[jQuery Mobile,hammer.js] 我最后坚持用锤子,因为我更喜欢文档。
我在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])
});
})
希望这会有所帮助。我想通过tap& amp;保持,但两个插件都有问题,通过滚动阅读taphold发布事件。
另一个问题,但通过查看文档非常容易修复,无论动画部分的长度是多长,都需要1秒才能到达那里。它很好,如果它是一个小部分但如果你有一个很长的它很快擦洗它。