首页 动态 消费 创业 汽车 商业 房产 互联网 纵横 聚焦 快讯 热点 手机版
资讯 > 动态 >

环球要闻:JS滚动到顶部踩坑解决记录

来源:脚本之家 发布时间:2023-05-15 12:13:57

正文

一般在比较长的页面中会有一个滚动到顶部的按钮,用户点击一下 300ms 内,会滚动到顶部,有动画效果。

一开始我想,这不是很简单,一行代码完美解决

$(document.documentElement).animate({scrollTop: 0}, 300);

使用这个可以到顶部,但是没有动画,没有采用


(资料图)

$(document.documentElement).scrollTop(0)

等到了手机上才发现,点击居然没有反应,才发现原来是我想的太简单,一个滚动到顶部的按钮竟然有这么多兼容问题。

document.body在 手机上能用,pc 上不能用

$(document.body).animate({scrollTop: 0}, 300);
console.log(document.body.scrollTop)   // 移动端有值,pc 为0

document.documentElement在 PC 上能用,但手机上不能用

$(document.documentElement).animate({scrollTop: 0}, 300);
console.log(document.documentElement.scrollTop)   // pc端有值,移动端为0

也就是说 PC 端滚动的是document.documentElement,在移动端滚动的是document.body

如果没有一个更好的 api,那么就需要在分环境处理滚动元素,这样显的就有点麻烦。

这时候document.scrollingElement就出现,这个 api 就是为解决这个问题诞生的,通过document.scrollingElement.tagName可以看到在 PC 端是html在移动端是body

在做解决问题的时候,搜索到一个 api

window.scrollTo({top: 0, behavior: "smooth"})

以为 js 良心发现,提供了一个这么好用的 api,可以滚动到顶部,还有动画,查看兼容性的时候, ios 居然不支持,害,果然就没有好事情。

所以在遇到滚动到顶部时,document.scrollingElement除了 IE 和 opera 和部分低版本浏览器不支持外,可以基本满足需求。

以上就是JS滚动到顶部踩坑解决记录的详细内容,更多关于JS滚动到顶部的资料请关注脚本之家其它相关文章!

关键词:
责任编辑:FG003


 

网站首页 | 关于我们 | 免责声明 | 联系我们
 

所有文章、评论、信息、数据仅供参考,使用前请核实,风险自负。
 

Copyright 2013-2020  高陵经济网 版权所有 京ICP备2022016840号-34
 

营业执照
 

联系邮箱:920 891 263@qq.com     glxcb.cn    All Rights Reserved