2014-08-30 81 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