关于pageYOffset scrollY scrollTop的小结
pageYOffset是window对象,适用于FF,chrome,IE9+,opera等多浏览器支持(其实是针对ie8和ie9之下的ie)同时忽略Doctype定义规则,也即是DTD说明。
window.pageYOffset; //用法,在ie8以及ie8之下显示undefined;
scrollY是window对象,适用于FF,chrome,opera支持,ie不支持,忽视Doctype定义规则,也即是DTD说明。
window.scrollY; //用法,在ie下显示undefined;
scrollTop 使用时要区分是否声明了DTD的情况
未声明DTD:
document.body.scrollTop; //兼容所有浏览器,来获取滚动条的偏移量;
声明了DTD:
document.documentElement.scrollTop; //chrome,safari值为0;
综合上边,所以通常取滚动条的偏移量的时候用的是var scroll_top=window.pageYOffset || document.documentElement.scrollTop
这样写的原因可能是因为pageYOffset兼容的范围比较大,基本上只要执行到此处就OK了,除非碰到ie8等浏览器才需要后边的支持。加快执行速度。(个人拙见)
关于DTD请百度,本人对DTD也就知道个皮毛,有这么个东西而已,要是有大牛的话,欢迎指点
document.compatMode; //可以用来判断是否声明了DTD;
值为"BackCompat":未声明DTD; 值为"CSS1Compat":已声明DTD;