用户
 找回密码
 入住 CI 中国社区
搜索
查看: 18469|回复: 2
收起左侧

$(document).scrollTop()和$(window).scrollTop()IE下值为0

[复制链接]
发表于 2010-1-29 14:23:06 | 显示全部楼层 |阅读模式
Jquery
$(document).scrollTop()和$(window).scrollTop()在IE在取不到值大家知道是咋回事啊,不管定义不定义DTD
但是在前面随便alert个东西就可以获取到值,谁能解释一下啊,在火狐下没这个问题
JS复制代码
 
alert($(document).scrollTop());//直接这样,始终为0
 
复制代码
JS复制代码
 
alert($(window).scrollTop());//直接这样,始终为0
 
复制代码
JS复制代码
 
alert();
alert($(window).scrollTop());//这样,可以取得争取的值
 
复制代码

有没有人知道为什么啊?郁闷死了
发表于 2010-1-29 16:23:08 | 显示全部楼层
本帖最后由 baiyuxiong 于 2010-1-29 16:24 编辑

var bodyTop = $(document).scrollTop();
经测试,如果是写成$(window).scrollTop()的话则在IE系列下是没有值的,万恶的jQuery API竟然没有scrollTop().

bodyTop = document.documentElement.scrollTop + document.body.scrollTop;

就可以了。

因为始终有一个为 0 ; 呵呵。
http://niunan.javaeye.com/blog/258164
 楼主| 发表于 2010-1-29 17:18:56 | 显示全部楼层
额,你小子到网上拷贝的啊,呵呵,经研究不是上述导致的问题
竟然是因为万恶的IE在刷新的手先把scrolltop搞成0然后再恢复到之前的状态,而document的ready的时候还没有恢复到之前状态,导致获取的值不正确,解决方法就是延时执行函数,哈哈
PS:$(window).scrollTop()在IE下是有值的,JQuery API 里也是有scrolltop函数的啊,还是看看官方的api比较实在。

本版积分规则