滚动条详解及制作(一)
查看滚动条的滚动距离
js中有两套方法可以查看当前滚动条的滚动距离。
第一套是这样的:
window.pageXOffset/window.pageYOffset
这个方法可以查看滚动条的横轴和纵轴的滚动距离,但是很遗憾的是IE8以及以下的版本不兼容。
因此针对于IE,我们就需要有第二套方法:
document.body.scrollLeft/doucment.body.scrollTop
document.documentElement.scrollLeft/document.documentElement.scrollTop
虽然IE可以使用这两个方法,但是这两个方法不仅仅是IE才可以使用。
这里要说明的是,这两种方法要一起使用,因为浏览器的兼容性问题,有的浏览器是document.body有值,有的是document.documentElement有值,但是所有的浏览器都只有一个有值,不会两个都有或者一个都没有,而且这里的没有值不代表是null,而是0,因此我们使用的时候一般都是两个一起使用。
针对兼容性的问题,我们现在就可以封装一个函数,求滚动条滚动距离的方法。
1 function getScrollOffset(){ 2 if(window.pageXOffset) { 3 return { 4 x: window.pageXOffset, 5 y: window.pageYOffset 6 } 7 } 8 return { 9 x: document.body.scollTop + document.documentElement.scrollTop, 10 y: document.body.scrollLeft + document.documentELement.scrollLeft; 11 }
当浏览器不是IE的时候,可以直接使用window.pageXOffset和window.pageYOffset的方法,当没有这两个的时候,我们才需要来计算。