在向下滚动时,将类添加到下一个元素,并从父元素中删除该类

时间:2017-01-25 20:03:19

标签: javascript css events scroll

我想知道this website上的这个侧面导航是怎么做的?因此,当您向下滚动时,下一个元素会突出显示 ,而之前的会突出显示。 在我的情况下,我想,当我向下滚动下一个元素获得一个current类和前一个元素该类被删除。当它到达结尾并向下滚动时,它将从第一个元素开始。

这是我的代码段

* {
  box-sizing: border-box;
}
body {
  background: #000;
}
*,
html,
body {
  margin: 0;
  padding: 0;
}
.line-container {
  width: 100px;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column;
  position: fixed;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.line {
  width: 25px;
  height: 5px;
  background-color: #fff;
  margin-bottom: 1.5em;
  cursor: pointer;
  transition: all 0.35s ease-in-out;
}
.current {
  width: 45px;
  background-color: #fff;
  transition: all 0.35s ease-in-out;
}
<div class="line-container" id="container">
    <div class="line current"></div>
    <div class="line"></div>
    <div class="line"></div>
    <div class="line"></div>
    <div class="line"></div>
</div>

1 个答案:

答案 0 :(得分:0)

您可以尝试使用 jQuery Bootstrap JS 来制作滚动间谍。查看本教程: http://www.w3schools.com/bootstrap/bootstrap_scrollspy.asp 滚动到目标元素时, Scroll-spy 会添加类active,即使不点击导航也是如此。希望这能解决你的问题;)

P.S。另请查看onscroll="yourFunction()"属性的作用。