1

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

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

4

2 回答 2

7

实际上我只是意识到 skrollr API 内置了这个!

我可以调用skrollr.animateTo(400)skrollr 作为用于启动 skrollr 的变量。

希望这对其他人有帮助!

于 2013-11-12T18:20:17.180 回答
0

这更像是一个仅供参考。

我在使用 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 秒。如果它是一小部分很好,但如果你有一个很长的部分,它会很快擦过它。

于 2015-08-05T14:10:20.700 回答