当我滚动到某个特定点时,如何使div随着我滚动而滚动?

4
我想创建一个div,它位于一段内容的下方,但一旦页面滚动到足够接触其顶部边界的位置,就会固定在原处并随页面滚动。我知道我在网上看过至少一个此类示例,但我想不起来了。
有什么想法吗?

1
可能是 http://stackoverflow.com/questions/3964784/google-news-left-nav-css-trick-or-jquery-trick/3965179#3965179 的重复。 - Gaurav Saxena
你想要固定页脚的功能吗?如果是的话,我们可以通过 CSS 实现,而无需编写 JavaScript。 - kobe
1
我想要一个div位于屏幕中央,当我向下滚动页面时,div在消失前会固定在窗口顶部并保持在那里。当我向上滚动回到顶部时,我希望它能够固定在原来的位置。 - Alex Rashkov
1个回答

1

[工作演示]

var el  = $("#sticky");
var win = $(window);
var width  = el.width();
var height = el.height();
var win_height = $(window).height();

window.onscroll = function() {
  var offset = el.offset().top + height - win_height;
  if ( win.scrollTop() > offset ) {
    window.onscroll = function() { 
      el.css({
        width: width,
        position: "absolute",
        top: win.scrollTop() + win_height - height
      });
    };  
  }
};

如果您不需要支持基于IE的浏览器,您可以使用:

position: "fixed"
bottom: 0

嗯,这个答案并没有满足我的需求。我想要一个div居中于屏幕,当我向下滚动页面时,div被隐藏,但我希望它能够固定在窗口的顶部并保持在那里。当我向上滚动回到页面顶部时,我希望它能够回到原来的位置。我想知道如何实现类似Mashable博客效果的东西(请参见http://mashable.com/2011/10/25/windows-xp-it-will-not-die/左侧的分享按钮)。 - butterywombat
搜索一下,如果你在 Stack Overflow 上找不到答案,就发一个问题,我(或其他人)会回答。 - gblazex

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