美文网首页
FireFox与Chrome的scrollTop的兼容问题

FireFox与Chrome的scrollTop的兼容问题

作者: 牛奶是本命___ | 来源:发表于2017-05-10 17:52 被阅读0次
做页面时需要判断页面滚动距离让列表对应文字变色,之前直接用document.body.scrollTop获取滚动距离,结果打开火狐发现不可以,获取不到

原生接口测试

Paste_Image.png

document.documentElement<html> 元素,而 document.body<body> 元素。

测试结果,在火狐上只能通过html元素来获取和设定页面滚动高度,而在谷歌上反之只能用body元素来获取和设定

jquery接口测试

Paste_Image.png

采用 $(document) 可以实现对获取和设定scrollTop的兼容

scrollTop动画实现测试

虽然实现了兼容,但为了有更好的效果,希望采用动画的方式滚动到页面的某位置,而不是直接跳转,这里采用jqueryanimate 函数来实现。

Paste_Image.png

发现虽然可以采用$(document)来实现获取和设定,但动画效果都无法使用,还是只能用body元素和html元素来实现。

最终解决

  • 获取或直接设定当前页面滚动高度:
    $(document).scrollTop();//获取,兼容火狐谷歌
  • 有动画效果的设定当前页面滚动高度:
    $("body,html").animate({ scrollTop: ... });//动画滚动效果,兼容火狐谷歌

如果想完美兼容各大浏览器的scrolltop

var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;

ie8、7、6 兼容scroll事件

$(window).bind("scroll",function(){ //…… });

相关文章

网友评论

      本文标题:FireFox与Chrome的scrollTop的兼容问题

      本文链接:https://www.haomeiwen.com/subject/admgtxtx.html