2017-02-15 3 views
0

J'ai un site web d'une page qui est divisé en deux parties sur la vue mobile horizontale. J'essaie donc de créer un effet de défilement/glissement vers le haut ou le bas de la page. J'ai essayé ce code de détectionFaire défiler en haut ou en bas de la page avec javascript, jquery sur mobile

var bottomofDoc = $(".main_container").height(); 
$(window).scroll(function(){ 
     var cur_top = $(window).scrollTop(); 
     if(top < cur_top){ 
      direction = 'down'; 
      $('html,body').animate({scrollTop: $(document).height()}, 600); 
      console.log(direction); 
     }else{ 
      direction = 'up'; 
      $("html, body").animate({ scrollTop: 0 }, 600); 
      console.log(direction); 
     } 
     top = cur_top; 
    }); 

Mais il fonctionne bogué, avec vacillante et quand je défiler une fois qu'il continue à faire des actions à plusieurs reprises. Toute idée comment ACHIVE lisse défilement vers le haut ou le bas

+0

1. http://ejohn.org/blog/learning-from-twitter/ 2. Vous voulez probablement introduire un drapeau et/ou minuterie Ne pas faire plus d'appels animés pendant que l'on est encore en cours d'exécution. – CBroe

+0

J'ai essayé mais ça n'a pas aidé @CBroe –

+0

Eh bien, nous ne pouvons pas vous aider si c'est tout ce que vous nous donnez. Montrez-nous ce que vous avez essayé, et avec quels résultats. – CBroe

Répondre

0
$(function(){ 
    $('a[href*="#"]:not([href="#"])').click(function(){ 
      if(location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname){ 
       var target = $(this.hash); 
       target = target.length ? target:$('[name=' + this.hash.slice(1) + ']'); 
       if(target.length){ 
        $('html, body').animate({ 
         scrollTop: target.offset().top 
        }, 1000); 
        return false; 
       } 
      } 
    }); 
}); 
+0

Je n'ai pas cliqué @ Brachu19 –