编程语言
首页 > 编程语言> > javascript-jQuery mobile阻止触发$(window).scroll事件

javascript-jQuery mobile阻止触发$(window).scroll事件

作者:互联网

我是新手,请保持温柔.我已经阅读了有关使用jquery .scroll()事件的文章,但是还没有实现有效的修复程序的运气.

https://stackoverflow.com/questions/5686629/jquery-window-scroll-event-does-not-fire-up
https://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的最后一行.

如果以引用的脚本内联加载,则视差脚本不起作用.

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

禁用JQM会产生所需的效果…但是现在JQM已关闭!

标签:jquery-mobile,html,javascript,jquery
来源: https://codeday.me/bug/20191121/2050810.html