html5锚点滚动
摘要: 作者介绍了通过scrollIntoView
实现HTML5锚点平滑滚动的方法,避免了传统锚点滚动的突兀和改变URL的问题。该方法只需少量代码,且可自定义动画效果,但在Safari浏览器中不支持参数,无法实现平滑滚动。 (评价: A)
普通的锚点滚动方式是直来直去的,不太平滑,我们可以借助scrollIntoView
实现平滑滚动。
原始方案
|
|
一般会按照上述方案实现锚点滚动, 但是这种方案的问题有两点:
- 会改变url
- 滚动动画不平滑
scrollIntoView
采用scrollIntoView
可以使用很少的代码实现平滑滚动, 并且不会改变url.
|
|
scrollIntoView
可以接收三个参数:
behavior
: 定义动画过渡效果, “auto"或 “smooth” 之一. 默认为 “auto”.block
: 定义垂直方向的对齐, “start”, “center”, “end”, 或 “nearest"之一. 默认为 “start”.inline
: 定义水平方向的对齐, “start”, “center”, “end”, 或 “nearest"之一. 默认为 “nearest”.
注意: Safari桌面和移动端都不支持scrollIntoView
参数, 仅可以使用默认配置, 这时候是没有平滑滚动效果的.