【问题标题】:Fixed position Sidebar through JS通过JS固定位置侧边栏
【发布时间】:2017-01-16 06:51:06
【问题描述】:

我有这个侧边栏,它的位置是通过 JS 设置的。基本上,它必须在页面滚动时保持原位,但是,当它到达容器的末尾时,它就会消失。我怎样才能保留(固定的)div,这样它就不会离开容器? 我将在这里发布代码和一张图片来更好地解释我在说什么。

示例:http://www.cosmosgraphicdesign.com/portfolio/work.html?featured

标记:

<div class="container">
    <div id="sidebar">
        <!-- Sidebar Content -->
    </div>

    <div id="mainContent">
        <!-- Main Content -->
    </div>
</div>

CSS:

#sidebar{
    position: absolute;
    width: 350px;
    padding-left: 10px;
}

JQuery:

var mainContent;
var navbarHeight = $(".navbar").height();
var sidebarHeight = $("#sidebar").height()/2;

$(document).on( "scroll", function(){
    mainContent = $(".work").scrollTop() + navbarHeight;

    $("#sidebar").css("top", mainContent);

    if(mainContent => $(".work").height()){
        mainContent = $(".work").scrollTop() + navbarHeight - sidebarHeight;
        $("#sidebar").css("top", mainContent);
    }
});

【问题讨论】:

  • 尝试将background 设置为您的.sidebar..

标签: jquery position fixed


【解决方案1】:

这就是我要解释的内容:Image going off container

【讨论】:

    【解决方案2】:

    如果我正确理解问题,这是我制作的原始示例:

      var mainContentHeight = $("#mainContent").height();
      var mainContentTop = $("#mainContent").offset().top;
      var sidebarHeight = $("#sidebar").height();
      var sidebar = $("#sidebar");
    
      $(document).on("scroll", function() {
        //'stick' sidebar to the bottom of main block if we scroll 'too far'
        if ($(window).scrollTop() + sidebarHeight > mainContentHeight + mainContentTop) {
          sidebar.css({
            position: 'absolute',
            top: mainContentHeight - sidebarHeight + mainContentTop
          });
        }
        //'stick' sidebar to the top of main block 
        else if ($(window).scrollTop() < mainContentTop) {
          sidebar.css({
            position: 'absolute',
            top: mainContentTop
          });
        }
        //fixed sidebar until it won't reach top or bottom of the main content block
        else {
          sidebar.css({
            position: 'fixed',
            top: 0
          });
        }
      });
    

    Example

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2012-10-19
    • 2018-02-17
    • 2011-09-11
    • 2019-03-20
    相关资源
    最近更新 更多