使 Jquery.ScrollTo 根据速度而不是持续时间工作
我正在创建一个水平站点(它也可以是任何其他自动滚动站点,如对角线),它使用 Jquery.ScrollTo 插件中的 $.Localscroll 子级。
这个插件有一个大问题;它根据持续时间计算运动。这意味着从第 1 页到第 2 页的转换需要 2 秒,但从第 1 页到第 10 页的转换也需要 2 秒,使其转换速度如此之快,转换本身不再真正可见。我不知道会有多少链接,而且这些链接不会位于同一个菜单中,而是分散在各个页面中。
有没有办法找出当前的滚动到位置(最好通过插件,这样它是跨浏览器的)并使用哈希(#)找出新的滚动到值,然后根据速度计算持续时间?
I'm creating a horizontal site (it could also be any other auto-scrolling site, like diagonal) which uses the $.Localscroll child from the Jquery.ScrollTo plugin.
There's one big problem with this plugin; it calculates movement based on a duration. This means the transition from page 1 to 2 takes up 2 seconds, but a transition from page 1 to 10 also takes up 2 seconds, making it transition so fast, the transition itself isn't really visible anymore. I don't know how many links there will be and the links won't be in the same menu but scattered accross pages.
Is there a way to find out the current scrollto position (preferably via the plugin so it's cross-browser) and use the hash (#) to find out the new scrollto value, then calculate the duration based on speed?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
$("element").scrollTop()
获取scrollTop值。您可以进行一些计算并根据该计算设置时间长度。You can get the scrollTop value with
$("element").scrollTop()
. You could do some calculation and set the timelength based on that.您可以指定在一段时间内应移动多少像素。在本例中为 50 像素/10 毫秒。
例如。:
You can say how many pixels should be moved in a duration. In this case 50px/10ms.
eg.: