[英]jQuery to auto-scroll with skrollr on mobile?
我已经使用skrollr为iOS制作了视差网站。 我想以编程方式向下滚动到页面上的某个点。 我使用了jQuery滚动插件,它们在台式机上工作,但不适用于移动设备。 如何使用jQuery模拟滑动或以某种方式模拟滚动到另一点? 谢谢!
编辑:这行不通的原因是在移动设备上,由于iOS在滚动过程中停止了动画,所以skrollr并未真正滚动。 相反,它侦听触摸事件并移动元素。 这就是为什么scrollTo插件不起作用的原因。 (来源: https : //github.com/Prinzhorn/skrollr#mobile-support )
实际上,我只是意识到skrollr API具有内置功能!
我可以调用skrollr.animateTo(400)
,而skrollr是用于启动skrollr的变量。
希望这对别人有帮助!
这更像是仅供参考。
我在使用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])
});
})
希望这可以帮助。 我想要使用点击并按住的原始方式,但是两个插件在滚动读取Taphold释放事件时都有问题。
另一个问题,但通过查看文档非常容易解决,无论动画部分的长度有多长,都需要1秒才能到达。 如果这是一个很小的部分,它很好,但是如果您有一个很长的部分,它会很快擦洗整个部分。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.