07/6
2015
获取页面卷去(滚动)高度的语句是:
document.body.scrollTop
然而实际应用中,在IE和firefox中需要这么写:
document.documentElement.scrollTop
综合起来可以用下面的写法:
document.documentElement.scrollTop|| document.body.scrollTop
上面是获取卷去的高度,如果是要设置卷去的高度的话,就只能通过判断浏览器来区别对待了:
if(navigator.userAgent.indexOf('AppleWebKit') > -1){//如果是chrome内核,则 document.body.scrollTop =_scrollTop; }else{//否则 document.documentElement.scrollTop=_scrollTop;//IE和火狐需要这一句 }
scrollLeft也需要这么写。
以上没有考虑Safari的情况,因为我是win系统。据说Safari用的是自己特有的函数,需要考虑Safari的话可参考此处。
刚才帮同学写了个返回顶部的按钮,按钮是在iframe里面的,把代码贴出来备用:
$("#ScrollToTop").click(function () { if(navigator.userAgent.indexOf('AppleWebKit') > -1){//如果是chrome内核,则 window.top.document.body.scrollTop =0; }else{//否则 window.top.document.documentElement.scrollTop=0; } })
注意,如果你把此代码用在顶级页面中,是没有问题的。如果用在iframe里面,只有在服务器环境中才能看到效果。在本地环境中,iframe获取window.top的属性会受到跨域限制,所以无效。