我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JS滚动到顶部踩坑解决记录

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JS滚动到顶部踩坑解决记录

正文

一般在比较长的页面中会有一个滚动到顶部的按钮,用户点击一下 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滚动到顶部的资料请关注编程网其它相关文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JS滚动到顶部踩坑解决记录

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

JS滚动到顶部踩坑解决记录

这篇文章主要为大家介绍了一次JS滚动到顶部踩坑解决记录过程分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-20

编程热搜

目录