我正在尝试在我的应用程序中使用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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。