我想使用加上CSS3 is
scroll-behavior:smootn
属性来实现滚动顶条瞄准点时的平滑过程,这与jq is$('body,html').animate({scrolltop:0},1000)
效果相同。
但是最近,当我使用这个属性时,没有平滑效果。我在一个月前就意识到了,现在我已经找到了scroll-behavior:smoot
的大部分演示示例。似乎都失败了。
这有一篇关于滚动条的文章和演示。这个演示也失去了平滑效果。是因为我的浏览器版本吗?我使用的Microsoft Edge版本是86.0.622.58。
null
for (let i = 0; i < 100; i++) {
let lisElem = document.createElement('li');
document.querySelector('ol').appendChild(lisElem);
}
html,
body {
margin:0;
scroll-behavior: smooth;
}
a {
display: inline-block;
background-color: #369;
color: #fff;
text-decoration: none;
padding: 20px;
}
li {
margin: 30px 0;
}
<a href="#f" id="t">back to bottom</a>
<ol></ol>
<a href="#t" id="f">back to top</a>
null
演示失败是因为它利用了标签和输入之间的关系。我假设您在代码中使用了相同的技术。当您点击一个标签时,它应该立即将焦点转移到与之相关的输入上(因此用户不必等待滚动来填充输入)。因此,scroll-behavior:smootn
不起作用。但是,一个可能的解决方案是使用a
标记而不是标签
,并使用属性href='#idOfTheElementTosCrollTo'
。如果你的页面不适合视图端口的全部高度(页面可滚动),这个解决方案将使整个页面滚动到那个不好的元素。在这种情况下,您应该用JS编写一个脚本来完成任务。