2013-08-27 78 views
2

我有这样的代码:

$(window).scroll(function() { 
    var y_scroll_pos = window.pageYOffset; 
    var scroll_pos_test = 200; 

    if(y_scroll_pos > scroll_pos_test) { 

     $('.extratext').slideDown('slow'); 

    } 
}); 

,在FF,Chrome和IE 10工作正常,但不是IE 9以下。我已经研究了答案,他们都说它应该与$(window)一起使用,而不是通常的$(document),这正是我所得到的。

有没有人知道另一种修改方法?

编辑:

新增console.log(y_scroll_pos);,并将其与 '未定义' 上来。 IE不喜欢window.pageYOffset;

+0

当你有HTML和高度的身体:100%,有时'$('HTML,身体) '工作....值得一试! –

回答

6

从MDN文档:

对于跨浏览器兼容性,使用window.pageYOffset代替 window.scrollY。此外,旧版本的Internet Explorer(< 9)不支持这两种属性,并且必须通过检查其他非标准属性来解决 。

你总是可以使用jQuery的实施scrollTop(),应该对所有的浏览器:

$(window).scroll(function() { 
    var y_scroll_pos = $(this).scrollTop(); 
    var scroll_pos_test = 200; 

    if(y_scroll_pos > scroll_pos_test) { 
     $('.extratext').slideDown('slow'); 
    } 
}); 
相关问题