1

我有这个 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;
    }

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

4

1 回答 1

0

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

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

当您将元素的position属性设置为fixed,或者absolute将其从文档的正常流程中删除时。这意味着元素所占用的空间将不再被考虑,即它不会影响其他元素。这意味着如果您尝试在固定定位之外设置浮动,则文档的其余部分将不会围绕元素流动,因为不会考虑元素的空间。

看看这些:

于 2012-10-31T13:29:43.057 回答