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

分类

按照我的个人理解,滚动分全局滚动(浏览器窗口)跟局部滚动(自定义的盒子),以下内容绝大部分都是指全局滚动,局部滚动的话获取指定的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);
复制代码`

效果如下:
在这里插入图片描述

或者用锚点:
<a href="#box">盒子出现在顶部</a>
<div id="box"></div>
复制代码

效果如下:
在这里插入图片描述

或者利用scrollIntoView进行展现:
document.querySelector(".box").scrollIntoView();
复制代码

效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值