解析浏览器的一些“滚动”行为鉴赏

2020-04-25 08:01:07易采站长站整理

效果如下:

或者用锚点:


<a href="#box">盒子出现在顶部</a>
<div id="box"></div>

效果如下:

或者利用

scrollIntoView
进行展现:


document.querySelector(".box").scrollIntoView();

效果如下:
 

还可以指定元素的出现位置:


// start出现在视口顶部、center出现在视口中央、end出现在视口底部
document.querySelector(".box").scrollIntoView({
block: "start" || "center" || "end"
});

效果如下:
 

如何设置滚动具有平滑的过渡效果利用每个方法的

参数
设置:


window.scrollTo({
behavior: "smooth"
});

window.scrollBy({
behavior: "smooth"
});

document.querySelector(".box").scrollIntoView({
behavior: "smooth"
});

效果如下:
 

或者用

css
属性设置:


html {
scroll-behavior: smooth; // 全局滚动具有平滑效果
}

// 或者所有
* {
scroll-behavior: smooth;
}

效果如下:
 

注意:设置了该属性之后,所有方法都可以不用设置

behavior
参数了,二选一即可,因为都是
控制当前指定元素的滚动行为
,所以锚点跳转、设置
scrollTop
也具有平滑(
smooth
)的
滚动行为

一些有趣的东西

1. scrollingElement

该对象可以非常

兼容
地获取
scrollTop
scrollHeight
等属性,在
移动端
PC端
都屡试不爽🤞

还记得当初写这个兼容性方法: