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

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

最近挺忙的,这次抽空写写文

陶冶下情操
浏览器滚动
真的天天见日日见啦,比如你现在看的这篇文章,往下看就必须得滚动,这篇文章主要聊聊
滚动相关
的一些
方法
属性
,还有一些有趣的例子🎈 文章涉及到的
方法或属性
在文末会放链接,方便大家自行查阅!

分类

按照我的个人理解,滚动分

全局滚动(浏览器窗口)
局部滚动(自定义的盒子)
,以下内容绝大部分都是指
全局滚动
局部滚动
的话获取
指定的DOM
再调用
相应的API
即可✅

如何设置全局滚动条高度

最常用的方法:


window.scrollTo(0, 0);

// or
window.scrollTo({
left: 0,
top: 100
});

也可以利用

相对滚动
设置:


window.scrollBy(0, 0);

// or
window.scrollBy({
left: 0,
top: 100
});

或者利用

scrollTop
设置:


document.scrollingElement.scrollTop = 100;

注意:

scrollTo
scrollBy
的参数是一样的,区别就是
scrollBy
滚动距离是相对与当前滚动条位置进行滚动✅

效果对比如下:


 

很明显,

前者
就是把滚动高度设置成
100
,而
后者
是每次都增加
100
,这就是为什么称之为
相对滚动
了✅

如何指定一个元素显示在视窗

最常用的方法:


// 获取元素的offsetTop(元素距离文档顶部的距离)
let offsetTop = document.querySelector(".box").offsetTop;

// 设置滚动条的高度
window.scrollTo(0, offsetTop);