javascript - div 在另一个下方滚动一次到达页面上的一个点

标签 javascript html css

我有 3 个 div div1 div2 div3 一个一个放在一起

我试图让 div2 在滚动经过 div1 后到达其顶部后保持固定,然后 div3 在其下方滚动

我为此使用了 html、css、javascript,没有 jquery。

我正试图对此进行调整。

 window.onscroll = function() {
  var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
  if (scrollTop >= document.getElementById("div1").offsetTop ) {
    document.getElementById("div3").style.position = "relative";
    document.getElementById("div2").style.marginTop = " 70px";
    document.getElementById("div3").style.marginTop = "- 50px";
  } else {
    document.getElementById("div3").style.position = "static";
    document.getElementById("div2").style.marginTop = "0px";
    document.getElementById("div3").style.marginTop = "0px";
  }
}

现在我正在尝试这个: var objDiv = document.getElementById("div2"); objDiv.scrollTop = objDiv.scrollHeight;

window.onscroll = function() {
var scrollTop = (window.pageYOffset !== undefined) ? window.pageYOffset : (document.documentElement || document.body.parentNode || document.body).scrollTop;
if (scrollTop >=  div2 ) { 
  document.getElementById("copername").style.zIndex = "1"; 
  document.getElementById("copername").style.position = "fixed"; 

最佳答案

最简单的方法可能是使用 JS 添加/删除 .sticky 类,该类通过滚动经过 div1offsetHeight 触发:

window.onscroll = function() {
  var scrollTop = window.pageYOffset || document.documentElement.scrollTop;
  if (scrollTop > document.getElementById("div1").offsetHeight ) {
    document.getElementById("div2").classList.add('sticky');
    document.getElementById("div3").style.marginTop = "600px";
  } else {
    document.getElementById("div2").classList.remove('sticky');
    document.getElementById("div3").style.marginTop = "0px";
  }
}

您还需要确保您的最后一个 #div3 在您的 CSS 中具有更高的 z-index 和绝对定位:

#div3 {
  z-index: 100;
  position: absolute;
  margin-top: 0px;
}

演示:JSFiddle

关于javascript - div 在另一个下方滚动一次到达页面上的一个点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45334842/

相关文章:

javascript - 具有未知长度的数据结构

javascript - 如何在keystone.js(mongoose)中嵌套查询关系数据?

javascript - 如何在加载网页时自动运行自定义 JavaScript 代码?

html - IE11 - 如果上面内容的高度大于窗口高度,页面底部的 "footer"会被下推

javascript - 为什么它只工作一次?

css - SASS 上的引用图像

javascript - 如何将文字居中放置在 donut 饼图的中间?

javascript - Firefox 中的 Event.target 问题

javascript - 按键上的 Jquery

javascript - 如何慢慢移动到<a姓名标签?