javascript - Jquery .scroll() 在 IE 中不适用于 $(window) 和 $(document)。 (window.pageYOffset 的问题?)

标签 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; 吗?

最佳答案

来自 MDN 文档:

For cross-browser compatibility, use window.pageYOffset instead of window.scrollY. Additionally, older versions of Internet Explorer (< 9) do not support either property and must be worked around by checking other non-standard properties.

您始终可以使用 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');
    }
});

关于javascript - Jquery .scroll() 在 IE 中不适用于 $(window) 和 $(document)。 (window.pageYOffset 的问题?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18457043/

相关文章:

javascript - 如何 console.log 闭包的内容

jquery - Masonry jQuery 插件不适合我

javascript - 滚动菜单的固定 div

internet-explorer - 页面无法在 IE7 或 IE8 中完全加载(但可以在其他浏览器中使用)

javascript - 我收到错误 SCRIPT1003 : Expected ':' in IE 11; (Java Script Code error)

javascript - CSS(scss)变量计算返回错误

javascript - php 中的 POST 和提交按钮问题

javascript - 从未知对象数组制作 HTML 表格

javascript - 如何处理 PHP session 超时

javascript - 跨浏览器的 Getter 和 Setter