2014-08-30 46 views
1

我在我的網站上使用$(窗口).scroll事件觸發功能,所有這一切都很好,只是它不適用於移動設備。

這是我使用的代碼:

$(window).scroll(function(){ 
    var wh = $(window).height(); 
    var scrolledFromtop = $(window).scrollTop(); 
    if(scrolledFromtop > wh){ 

     $('html').addClass('scrolled'); 
    }else{ 
     $('html').removeClass('scrolled'); 
    } 
}); 

我也試過這個代碼,但沒有成功:

document.addEventListener("touchmove",aaa, false); 
function aaa(){ 
    var wh = $(window).height(); 
    var scrolledFromtop = $(window).scrollTop(); 
    if(scrolledFromtop > (wh)){   
    $('html').addClass('scrolled'); 
    } 

    else { 
     $('html').removeClass('scrolled'); 
    } 

}; 

誰能幫助我嗎?

+0

我嘗試了基於Android系統的Chrome瀏覽器 – 2014-08-30 19:06:06

回答

0

一些(?)移動瀏覽器根本不會觸發事件,直到滾動完全停止。

你可以嘗試一些事情來解決這個問題:

  1. 使用的setInterval
  2. 使用觸摸事件
  3. 另一種解決辦法無非是要完全禁用本地滾動和使用JavaScript來模仿,而不是滾動。

$('window').on('touchmove', function(event) { //Prevent the window from being scrolled. event.preventDefault();

//Do something like call window.scrollTo to mimic the scrolling 
    //request the user made. 
}); 

你可以找到更多關於這一點,這個偉大的文章:

http://tjvantoll.com/2012/08/19/onscroll-event-issues-on-mobile-browsers/

+0

僅供參考,這並不工作 – 2017-08-11 11:19:24

相關問題