分别使用 css 和 js 实现平滑滚动

css平滑滚动

   scroll-behavior: smooth; 

支持性:不好,谷歌火狐支持;其他多数不支持

js滚动

   window.scrollTo(0,0) // 1. 回到顶部,不够友好
   Element.scrollIntoView() // 2. 让当前元素滚动到浏览器可视化区域内

举一个在react中应用的例子:ref+scrollIntoView

   <div ref={(node)=>this.node = node}></div>
  this.node.scrollIntoView({
    block: "start", 
    inline: "nearest",
    behavior: "smooth" // 平滑滚动
  });

支持性:还可以,对于无参数的滚动支持还是挺好的。

向下兼容

如果页面不支持scrollIntoView,就是用js做缓冲效果 (requestAnimationFrame + 缓冲算法)

学习地址:https://segmentfault.com/a/1190000016839122?_ea=5019384

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值