我想要滚动行为auto
。问题是,在我的项目中,滚动行为被设置为在全局级别上平滑,例如
html {
scroll-behavior: smooth;
}
我想调用行为为auto
的window.scrollTo((。
window.scrollTo({
top: 500,
behavior: "auto"
});
问题是它总是采用css中定义的行为,即使我在js中对其进行了不同的定义。当通过js行为调用时,有没有办法强制浏览器使用auto
?
您可以尝试使用!important
css属性,如下所示:
html {
scroll-behavior: auto !important;
}
这将防止在其他css定义中覆盖此值。
CSS的重要性(部分(取决于CSS样式的定义。确定重要性的顺序是(从最不重要到最重要(:
- 外部css文件
<link rel="stylesheet" type="text/css"
- 内部css样式
<style></style>
- 内联css
<div style="">
因此,当在一个单独的文件中定义一个css样式,并在内部样式表中定义另一个具有完全相同选择器的样式时,将使用内部工作表中的样式。在外部工作表中使用!important
将强制使用该样式,并使其覆盖内部css样式。
如果你不能通过css文件或编辑HTML添加样式,你也可以使用JavaScript设置样式,比如:
document.getElementsByTagName('html')[0].style.scrollBehavior = "auto !important";