javascript - 向下滚动后将 div 固定在顶部?

标签 javascript html css scroll

我尝试修复顶部:滚动后 id 为“sticky”的 div,但不起作用,我认为 java 脚本代码是问题所在。 有人可以帮我做吗。

function sticky_relocate() {
  var window_top = $(window).scrollTop();
  var div_top = $('#sticky-anchor').offset().top;
  if (window_top > div_top) {
    $('#sticky').addClass('stick');
    $('#sticky-anchor').height($('#sticky').outerHeight());
  } else {
    $('#sticky').removeClass('stick');
    $('#sticky-anchor').height(0);
  }
}
    
$(function() {
  $(window).scroll(sticky_relocate);
  sticky_relocate();
});
#sticky {
  background-color: red;
  height:140px;
  z-index: 1;
}
    
#sticky.stick {
  position: fixed;
  top: 0;
  z-index: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sticky-anchor"></div>
<div id="sticky">
  <ul class="menu">
    <li><a href="#">Nos Produits</a></li>
  </ul> <!--  ul end .menu -->
</div>

最佳答案

您需要包括 jQuery :

function sticky_relocate() {
  var window_top = $(window).scrollTop();
  var div_top = $('#sticky-anchor').offset().top;
  if (window_top > div_top) {
    $('#sticky').addClass('stick');
    $('#sticky-anchor').height($('#sticky').outerHeight());
  } else {
    $('#sticky').removeClass('stick');
    $('#sticky-anchor').height(0);
  }
}

$(function() {
  $(window).scroll(sticky_relocate);
  sticky_relocate();
});
body {
height: 2000px;
background: grey;
}

#sticky {
  background-color: red;
  height: 140px;
  z-index: 1;
}

#sticky.stick {
  position: fixed;
  top: 0;
/* added for demo */
  left: 0;
  right: 0;
  z-index: 1;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="sticky-anchor"></div>
<div id="sticky">
  <ul class="menu">
    <li><a href="#">Nos Produits</a></li>
  </ul>
  <!--  ul end .menu -->
</div>

关于javascript - 向下滚动后将 div 固定在顶部?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46342976/

相关文章:

html - 如何在CSS中添加图像映射?

html - 获取两个内联(或内联 block )元素以匹配高度

javascript - 将对象拖出 IFrame

javascript - 无法连接 MySQL DB,出现 ECONNREFUSED

javascript - 如何获取初始化的 jQuery Datatable 的 iTotalDisplayRecords 值?

c# - 第一次出现文本长度 >= 200 个字符的元素的 XPath

html - 如何让 div 粘在屏幕底部并让中间内容滚动?

css - 三星 Galaxy Note 2 的媒体查询

css - 定位: absolute and relative problems

javascript - chrome.tabs.create 中的 Chrome.extension.sendMessage