我是新人,請溫柔。我已經回顧了使用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