jQuery在移动设备上使用skrollr自动滚动?

时间:2013-11-12 18:11:00

标签: javascript jquery ios parallax skrollr

我使用skrollr为iOS制作了一个视差网站。我想以编程方式向下滚动到页面上的某个点。我使用过jquery滚动插件,它们可以在桌面上运行,但不能在移动设备上运行。如何使用jQuery模拟swipeup或以某种方式模拟滚动到另一个点?谢谢!

编辑:这不起作用的原因是在移动设备上,由于iOS在滚动期间停止动画,因此skrollr实际上不会滚动。相反,它会侦听触摸事件并移动元素。这就是为什么scrollTo插件不起作用的原因。 (来源:https://github.com/Prinzhorn/skrollr#mobile-support

2 个答案:

答案 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秒才能到达那里。它很好,如果它是一个小部分但如果你有一个很长的它很快擦洗它。