js之返回顶部,scrollTo与pageYOffset

js返回顶部的实现。

新浪微博有一个返回顶部功能,于是,就想着自己来实现,结果发现不同浏览器还有些不一样。不过,终于是解决了。其实还是挺简单的,代码如下

 

  1. function scrollToTop(x,y){  
  2.     if(window.all){  
  3.         //ie  
  4.         document.documentElement.scrollTop = y;  
  5.     }else{  
  6.         //实现上x可直接为0,  
  7.          //但是在网页大小可以左右滚动时,x就有用了  
  8.         window.scrollTo(x, y);  
  9.     }  
  10. }  

所以,直接调用上面的函数就可以了,当然,你还可以判断在网页滚动了多少后才显示返回顶部的按钮。

 

  1. /*  
  2. *由于ie和其它浏览器有点不同,ie下可以用  
  3. document.documentElement.scrollTop 来获取当前的垂直方向的偏移值,  
  4. document.documentElement.scrollLeft 是水平方向偏移量   
  5. 其它浏览器用window.pageYOffset(垂直方向),  
  6. window.pageXOffset(水平方向)  
  7. */ 
  8.  
  9. /*  
  10. * ie下的方法  
  11. */ 
  12. if(window.all && document.documentElement.scrollTop >= 500){  
  13.     //比如大于500的时候显示返回顶部  
  14.     //具体不在这里实现了  
  15. }else{  
  16.     //小于500时隐藏  
  17. }  
  18. /*  
  19. * 非ie下的方法  
  20. */ 
  21. if(window.pageYOffset >= 500){  
  22.     //显示  
  23. }else{  
  24.     //隐藏  
  25. }  

如有错误,还望指出,谢谢。

改进:

body元素的scrollTop是超出“浏览器窗口上边界”的内容的高度
当html文档头部包含有“文档类型声明”时,需要用document.documentElement.scrollTop获得正确的值,而document.body.scrollTop的值为0
当html文档头部不包含有“文档类型声明”时,可以用document.body.scrolltop来获得值。

 

  1. //在某些情况下,document.documentElement.scrollTop的值为0,这时需要修改为 
  2. //document.body.scrollTop + document.documentElement.scrollTop 
  3. var sTop = document.body.scrollTop + document.documentElement.scrollTop; 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章