我是新人,请温柔。我已经回顾了使用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>
我代替我的视差脚本,当JQM进一步初始化和修改的布局,再没有什么页面被调整,这导致一个警报的尝试了$(windows).scroll(function(){alert('scroll')})
。窗口滚动时,在页面加载后重新输入控制台中的行。
如果我注释掉JQM链接,视差脚本工作得很好。
总结: 视差脚本依赖于.scroll()。
视差脚本是HTML中引用的最后一个.js中的最后一行。
如果与引用的脚本内联加载,Parallax脚本不起作用。
如果在页面加载后(Chrome)在开发控制台中输入Parallax脚本,则工作正常。
禁用JQM会产生所需的效果......但现在JQM关闭了! :(
预先感谢您为您的指导和智慧贤明。
后的头几个小时划伤,回家补测试页后发现,由于某些原因,效果,正在按原计划....但是在sw之后,我确实发现了这一点发痒页面查看效果停止工作,直到重新加载。 – 2014-09-03 00:32:20
不知何故,这JSFiddle工作正常,但我的本地版本不。我输了。感谢收看.. http://jsfiddle.net/m17aqe6j/ – 2014-09-03 00:45:46
这里是我的本地版本的副本。切换到第2页并回到第1页后,视差被打破。我已经评论了没有进入jsfiddler的任何内容,因此不确定结果会有什么不同? http://new.seianesthesia.com/test.html – 2014-09-03 01:18:45