jquery滚动问题,元素不会保持原位?

时间:2012-10-31 13:12:46

标签: jquery css

我有这个jquery片段,当向下滚动时,元素在顶部保持可见:

            var $window = $(window),
            $stickyEl = $('.rightcol'),
            elTop = $stickyEl.offset().top;
            $window.scroll(function() {
              var windowTop = $window.scrollTop();
              $stickyEl.toggleClass('sticky', windowTop > elTop);

        });

CSS:

.rightcol.sticky {
      position: fixed;
      top: 0;
    }

当我滚动右列时确实保持在顶部,但是它向左移动,它应该在右边,在滚动或onpage加载之前元素应该放在第一个位置。 我该如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您的问题是您已将滚动元素设置为float: right并将其设置为position: fixed,这将与浮点数相矛盾。

当您设置元素的float属性时,您告诉文档的其余部分适合该元素周围的其他内容。

将元素的position属性设置为fixedabsolute时,将其从文档的正常流程中删除。这意味着元素消耗的空间将不再被考虑,即它不会影响其他元素。这意味着如果除了固定定位之外还尝试设置浮点数,则文档的其余部分将不会在元素周围流动,因为不会考虑元素的空间。

看看这些: