2014-08-30 3 views
1

J'utilise une fonction déclenchée $ (window) .scroll sur mon site web, tout va bien seulement que ça ne marche pas sur les appareils mobiles.

Ce code J'utilise:

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

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

J'ai aussi essayé ce code, mais sans succès:

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'); 
    } 

}; 

quelqu'un peut me aider s'il vous plaît?

+0

J'ai essayé sur les systèmes à base d'Android avec le navigateur Chrome –

Répondre

0

Certains navigateurs mobiles (?) Ne déclenchent tout simplement pas l'événement tant que le défilement n'est pas complètement arrêté.

Vous pouvez essayer quelques petites choses à résoudre ce problème:

  1. utilisation setInterval
  2. utilisation des événements tactiles
  3. Une autre solution là-bas est de désactiver le défilement natif complètement et utiliser JavaScript pour imiter le défilement à la place.

$('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. 
}); 

Vous pouvez trouver beaucoup plus à ce sujet, dans ce grand article:

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

+0

FYI cela ne travail –

Questions connexes