jquery固定div在滚动,底部边界

时间:2013-04-10 17:50:17

标签: php jquery

动作流畅的固定版本:http://jsfiddle.net/66MBH/6/

我一直在寻找各处,但一直无法找到任何可以帮助我的东西,
首先,
Jquery代码。(不记得我在哪里得到它)

    $(document).ready(function () {  
  var top = $('#socialbookmarks2').offset().top - parseFloat($('#socialbookmarks2').css('marginTop').replace(/auto/, 0));
  $(window).scroll(function (event) {
    // what the y position of the scroll is
    var y = $(this).scrollTop();

    if (y >= top) {
      $('#socialbookmarks2').addClass('fixed');
    } else {
      $('#socialbookmarks2').removeClass('fixed');
    }
  });
});

快速;当达到容器的/ div时,如何进行此停止?,底部边界或什么?

Expained ;
我在自定义的“博客”网站上使用代码,类似于wordpress博客,社交书签应该从帖子的顶部到底部跟随每个博客帖子,然后当用户拥有时,重新开始下一个帖子滚动到它,

现在,如果我激活它,它会在第一个书签容器(#socialbookmarks2)上运行,然后一直到页面底部,而不是在帖子的末尾停止。
每页有10个帖子 希望它可以理解..


如果你看9gag.com,我发现了我想要它做的事情,如果你看到他们的评级和twitter / facebook分享框。它跟在帖子后面,然后停在它的底部。

谢谢!

1 个答案:

答案 0 :(得分:1)

最终你的答案是在你的病情中添加另一个陈述:

if (y >= top && y < bottom) {
  $('#socialbookmarks2').addClass('fixed');
} else {
  $('#socialbookmarks2').removeClass('fixed');
}

现在,底部是什么?顶部+元素的高度。因为我不知道那个元素是什么,所以我只能给出一个粗略的例子:

<div class="blog-item">
    <div class="social-bookmarks"></div>
    <h1>blog title</h1>
    <p>
        content here
    </p>
</div>

您需要考虑社交书签的父级。另外,听众必须上课而不是身份。

var bottom = y + $(this).parent().height();

假设这是每个$('。social-bookmarks')评估的循环。

有很多方法可以解决这个问题。我只是指出一种方法来实现你作为理论的效果,而不是一个工作的例子。为此,您需要尝试一下,如果需要我可以更新。