javascript – scrollIntoView()不起作用:不考虑固定元素

前端之家收集整理的这篇文章主要介绍了javascript – scrollIntoView()不起作用:不考虑固定元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我正在尝试在我的应用程序中使用scrollIntoView(),但因为我有一个顶部固定栏,当我使用scrollIntoView()时,元素将滚动到固定栏后面.

这意味着当我尝试将一些元素显示用户时,通过将元素滚动到可见区域,它将被滚动,但是对于另一个看不见的东西,就是这个固定的条形图.

按照我正在尝试做的一个例子:

let element = document.getElementsByClassName('second-element')[0];
element.scrollIntoView();
.fixed-element{
  height: 30px;
  width: 100%;
  background-color:black;
  position:fixed;
}

.parent-element {
   width: 100%;
   height: 40000px;
   background-color:blue;
}

.element {
   width: 100%;
   height:100px;
   background-color: yellow;
   margin-top:10px;
}

.second-element{
   width: 100%;
   background-color: red;
   height:200px;
}

有什么方法可以使用这个功能,因为固定条不会使滚动元素变得不可见?

我想要一个vanilla JavaScript解决方案.此外,并且只有在可能的情况下,才能获得不需要知道任何固定元素存在的解决方案.

最佳答案
您可以使窗口scrollTo x位置0和y位置元素的offsetTop减去固定元素的offsetHeight.

JSFiddle与您的代码http://jsfiddle.net/3sa2L14k/

.header{
  position: fixed;
  background-color: green;
  width: 100%;
  top: 0;
  left: 0;
  right: 0;
}
html,body{
  height: 1000px;
}

#toBeScrolledTo{
  position: relative;
  top: 500px;
}

猜你在找的HTML相关文章