jQuery算法滚动速度

3
有两个div,#leftPane和#rightPane。#leftPane的位置是相对的,浏览器会根据其高度设置滚动条,而#rightPane的位置是固定的,并且在滚动时我将其添加到top: -value,因此我们以不同的速度“滚动”第二个div。我想要实现的是根据1.浏览器窗口高度,2左侧面板内容高度和3右侧面板内容高度(2,3内容高度每次可能不同)获取scrollSpeedModifier。

因此,在滚动#leftPane时-如果#rightPane的内容比#leftPane大,则其顶部值增长得比正常滚动快,但当#rightPane内容高度小于#leftPane时,其顶部值增长得比正常滚动慢。

这是我目前计算速度的方法:

ar scrollSpeed = (rightPaneHeight) / browserHeight;

但是这是错误的,有时当我们到达 #rightPane 的中间并改变“浏览器”大小(jfiddle 窗口大小)时,我们可能会滚动到 #rightPane 的末尾。

这是我迄今为止得出的代码:

http://jsfiddle.net/bVfcX/15/

2个回答

1

好的,已修复。 http://jsfiddle.net/bVfcX/21/

正确的算法是:

-$(window).scrollTop() * ((browserHeight - rightPaneHeight) / (browserHeight - leftPaneHeight));

0

看看这个演示

  1. var doc = $(window); // 用于获取文档高度

  2. doc.scrollTop 是一个函数,使用 doc.scrollTop()

试一下吧。


它仍然无法将第二个div滚动到“END”,当您更改jfiddle窗口大小时,它每次都会滚动到不同的位置。 - strongBAD
所以这是你的算法! :) 你应该改变算法。 - mehdi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接