0

让我们直接开始吧:当用户滚动 x 量时,我希望侧边栏开始移动。现在,一旦侧边栏到达其末端,我希望它保持固定并滚动到页脚。这就是我得到的。

http://jsfiddle.net/Ajp44/

这是我的 Javascript:

 $(document).ready(function() {
// Cache selectors for faster performance.
var $window = $(window),
    $sidebar = $('#anchor'),
    $sidebarAnchor = $('#right');

// Run this on scroll events.
$window.scroll(function() {
    var window_top = $window.scrollTop();
    var div_top = $sidebarAnchor.offset().top;
    if (window_top > div_top) {
     // Make the div sticky.
     $sidebar.addClass('stick');
     $sidebarAnchor.height($sidebar.height());
    }
    else {
        // Unstick the div.
        $sidebar.removeClass('stick');
        $sidebarAnchor.height(0);
    }
});
});

出于某种原因,JSfiddle 没有显示 Javascript 正在做什么,但是如果您在 PC 上运行它,您可以看到。每当用户滚动通过侧边栏的结尾时,侧边栏不会像预期的那样随着它们向下滚动,而是跳转到页面的右侧......

所以我的问题是:如何阻止侧边栏跳到页面的一侧,并将其保持在父 DIV 的限制范围内?

干杯!

4

1 回答 1

1

不要right : 0在你的stick课上做。在固定元素中,位置属性是相对于视口的。

https://developer.mozilla.org/en-US/docs/Web/CSS/position#Fixed_positioning

于 2013-10-28T17:14:14.637 回答