javascript - Jquery Mobile 阻止 $(window).scroll 事件触发

标签 javascript jquery html jquery-mobile

我是新人,请温柔点。我已经查看了这些关于使用 jquery .scroll() 事件的帖子,但没有运气实现有效的修复。

http://stackoverflow.com/questions/5686629/jquery-window-scroll-event-does-not-fire-up
http://stackoverflow.com/questions/19375636/jquery-onscroll-not-firing-the-event-while-scrolling

我在一个使用 Jquery Mobile 的网站上工作。当用户垂直滚动页面时,我已经包含了一个小脚本来在背景图像上产生视差效果。是这样写的:

$(window).on('scroll', function(){
    $('.slider').each(function(r){
        var pos = $(this).offset().top;
        var scrolled = $(window).scrollTop();
        $('.slider').css('background-position-y', -(scrolled * 0.3) + 'px');
    });
});

当我在页面加载后在控制台中输入这段代码时,它的效果非常好。当作为我的自定义脚本的一部分加载时,它什么也不做。它位于我的 main.js 文件的末尾,这是我的 HTML 中引用的最后一个 .js,紧接在 JQM CDN 分发链接之后。

    ...</body>
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<script src='js/buildpage.js'></script>
<script src="http://code.jquery.com/mobile/1.4.3/jquery.mobile-1.4.3.min.js"></script>
<script src='js/main.js'></script>
</html>

我已经尝试用 $(windows).scroll(function(){alert('scroll')}) 代替我的视差脚本,这会导致单个警报作为页面当 JQM 初始化和修改布局时调整大小,然后没有进一步的。页面加载后在控制台中重新输入该行会导致窗口滚动时发出警报。

如果我注释掉 JQM 链接,视差脚本就可以正常工作。

总结: 视差脚本依赖于 .scroll()。

视差脚本是 HTML 中最后引用的 .js 中的最后一行。

如果与引用的脚本内嵌加载,Parallax 脚本将不起作用。

如果在页面加载后在开发控制台中输入视差脚本,Parallax 脚本可以正常工作 (Chrome)。

禁用 JQM 会产生预期的效果...但现在 JQM 已关闭! :(

提前感谢您的指导和智慧。

最佳答案

从 JQM 1.3 升级到 1.4 后,我遇到了类似的问题。为我解决的是使用 scrollstartscrollstop 而不是 scroll 事件(参见 http://api.jquerymobile.com/category/events/ )并将其附加到 document 而不是 window。所以

$(document).on('scrollstart', function(){     //or 'scrollstop'
    console.log("I'm scrolling!");
    //your code here
});

关于javascript - Jquery Mobile 阻止 $(window).scroll 事件触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25633324/

相关文章:

jquery - 使用 Jquery 的类名将焦点设置为链接

javascript - Javascript 函数中的返回与回调

javascript - Vue Router 在新页面上到顶部

javascript - 使用jquery计算dom上输入元素的动态数量

jquery - 电子邮件验证空白不需要输入

jquery - 如何找到附加了特定类的 tr 并获取每个 td 的详细信息 - jquery

javascript - 使用javascript将div的滚动条一直滚动到右侧

javascript - 正则表达式模式用于检测类似 $$_$$ 的内容

javascript - 无法在 'send' 上执行 'xmlhttprequest' 加载失败

javascript 函数在 Chrome 中不起作用