Jquery .scroll()无法在IE中使用$(window)和$(document)。 (window.pageYOffset问题?)

时间:2013-08-27 04:38:05

标签: javascript jquery internet-explorer cross-browser

我有这段代码:

$(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;吗?

1 个答案:

答案 0 :(得分:7)

来自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');
    }
});