如何创建 - 平滑滚动
了解如何使用 CSS 创建平滑的滚动效果。
平滑滚动
第 2 节
点击我平滑滚动到上面的第1节平滑滚动
在 <html> 元素上添加scroll-behavior:smooth
,实现整个页面的平滑滚动(注意:也可以添加到特定元素/容器滚动):
浏览器支持
表中的数字指定了第一个完全支持滚动行为属性的浏览器版本。
属性 | |||||
---|---|---|---|---|---|
scroll-behavior | 61.0 | 79.0 | 36.0 | 14.0 | 48.0 |
跨浏览器解决方案
对于不支持 scroll-behavior
属性的浏览器,您可以使用 JavaScript 或 JavaScript 库,例如 jQuery,创建适用于所有浏览器的解决方案:
实例
<script src="https://cdn.staticfile.org/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
// 为所有链接添加平滑滚动
$("a").on('click', function(event) {
// 在覆盖默认行为之前确保 this.hash 有一个值
if (this.hash !== "") {
// 防止默认锚点点击行为
event.preventDefault();
// 存储哈希
var hash = this.hash;
// 使用 jQuery animate() 方法添加平滑的页面滚动
// 可选数字 (800) 指定滚动到指定区域所需的毫秒数
$('html,
body').animate({
scrollTop: $(hash).offset().top
}, 800, function(){
// 滚动完成时向 URL 添加井号 (#)(默认点击行为)
window.location.hash = hash;
});
}
// End if
});
});
</script>
亲自试一试 »
提示:在我们的 CSS 参考中了解有关滚动行为属性的更多信息:CSS 滚动行为属性。