有没有一种方法可以强制滚动行为为"自动",即使滚动行为在html上定义为"平滑"



我想要滚动行为auto。问题是,在我的项目中,滚动行为被设置为在全局级别上平滑,例如

html {
scroll-behavior: smooth;
}

我想调用行为为auto的window.scrollTo((。

window.scrollTo({
top: 500,
behavior: "auto"
});

问题是它总是采用css中定义的行为,即使我在js中对其进行了不同的定义。当通过js行为调用时,有没有办法强制浏览器使用auto

您可以尝试使用!importantcss属性,如下所示:

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";

最新更新