我试图在我的页面上有一个固定元素,当用户滚动时,它会跟随其余的内容。
例如,在 Internet Explorer 上尝试http://jsfiddle.net/sVzfx/1/,你会看到我的问题(这在 Firefox 上不会发生,只是在 Opera 上做了一些不那么奇怪的事情)。在这个 jsfiddle 中,我使用滚动事件和一行代码来定位浮动元素:
$(window).scroll(function() {
$("#floatingContent").css("top", Math.max(maxTopPosition, startingPoint - $(this).scrollTop()));
});
(请参阅在某个点停止固定位置滚动?为此)
=> 滚动事件发生在滚动内容之后。因此,固定元素会延迟一些......
为了获得最佳用户体验,不存在此类行为至关重要。我的想法是计算正在滚动的像素数,在滚动其余内容之前定位元素。我认为用户不会看到这个元素位于其他元素之前,因为它太快了。问题是,我该怎么做?!
我尝试使用鼠标滚轮插件(请参阅http://brandonaaron.net/code/mousewheel/docs)。它使我能够在实际滚动之前做一些事情,而不是确定滚动的像素数......(我认为 deltaY 参数会返回它,但事实并非如此)。
你会怎么办?X(
也许我应该让元素相对并在它到达页面顶部后将其更改为固定......因此忘记在滚动之前移动它。