Maison > interface Web > js tutoriel > Comment utiliser jquery pour déterminer l'analyse de code d'exemple de direction de défilement de la barre de défilement

Comment utiliser jquery pour déterminer l'analyse de code d'exemple de direction de défilement de la barre de défilement

伊谢尔伦
Libérer: 2017-07-19 15:46:12
original
2119 Les gens l'ont consulté

Déterminez simplement la direction de la barre de défilement


function scroll( fn ) {
  var beforeScrollTop = document.body.scrollTop,
    fn = fn || function() {};
  window.addEventListener("scroll", function() {
    var afterScrollTop = document.body.scrollTop,
      delta = afterScrollTop - beforeScrollTop;
    if( delta === 0 ) return false;
    fn( delta > 0 ? "down" : "up" );
    beforeScrollTop = afterScrollTop;
  }, false);
}
Copier après la connexion

Méthode d'appel :


scroll(function(direction) { console.log(direction) });
Copier après la connexion

La méthode ci-dessus entraînera le saut de l'événement du navigateur Apple du téléphone mobile, l'amélioration de la solution et du code


scrollDirect: function (fn) {
  var beforeScrollTop = document.body.scrollTop;
  fn = fn || function () {
  };
  window.addEventListener("scroll", function (event) {
    event = event || window.event;

    var afterScrollTop = document.body.scrollTop;
    delta = afterScrollTop - beforeScrollTop;
    beforeScrollTop = afterScrollTop;

    var scrollTop = $(this).scrollTop();
    var scrollHeight = $(document).height();
    var windowHeight = $(this).height();
    if (scrollTop + windowHeight > scrollHeight - 10) { //滚动到底部执行事件
      fn('up');
      return;
    }
    if (afterScrollTop < 10 || afterScrollTop > $(document.body).height - 10) {
      fn(&#39;up&#39;);
    } else {
      if (Math.abs(delta) < 10) {
        return false;
      }
      fn(delta > 0 ? "down" : "up");
    }
  }, false);
}
Copier après la connexion

Méthode d'appel :


  var upflag=1;
  var downflag= 1;
  //scroll滑动,上滑和下滑只执行一次!
scrollDirect(function (direction) {
    if (direction == "down") {
      if (downflag) {
        $(".footer_wrap").slideUp(200);
        downflag = 0;
        upflag = 1;
      }
    }
    if (direction == "up") {
      if (upflag) {
        $(".footer_wrap").slideDown(200);
        downflag = 1;
        upflag = 0;
      }
    }
 });
Copier après la connexion

La barre de défilement défile vers le bas et la tête est jugée

En fait, il y a déjà des jugements dans la fonction ci-dessus, listons-les à nouveau ci-dessous ! Regardez la fonction suivante !


BottomJumpPage: function () {
      var scrollTop = $(this).scrollTop();
      var scrollHeight = $(document).height();
      var windowHeight = $(this).height();
      if (scrollTop + windowHeight == scrollHeight) { //滚动到底部执行事件
          console.dir("我到底部了");

      }
      if (scrollTop == 0) { //滚动到头部部执行事件
      console.dir("我到头部了");

      }
 }
Copier après la connexion

Méthode d'appel :


$(window).scroll(BottomJumpPage);
Copier après la connexion

Déterminer si p a défilé jusqu'à la fin de la partie

La méthode ci-dessus consiste à déterminer si l'axe de défilement a défilé vers le bas, mais parfois, lorsque nous effectuons un chargement de défilement, nous devons parfois également déterminer si un certain p a défilé vers le bas, puis chargé. Alors comment juger que l’axe de défilement de p a défilé vers le bas ?

Vous devez également connaître quelques hauteurs pour cela :

1 La hauteur de p$("#a certain p").height();
2. de l'axe de défilement$(# Un certain p)[0].scrollHeight
3. La hauteur de l'axe de défilement jusqu'au sommet de p $(un certain p)[0].scrollTop;
Écrivez le code comme suit :


 $(document).ready(function (){
    var nScrollHight = 0; //滚动距离总长(注意不是滚动条的长度)
    var nScrollTop = 0;  //滚动到的当前位置
    var npHight = $("#p1").height();
    $("#p1").scroll(function(){
     nScrollHight = $(this)[0].scrollHeight;
     nScrollTop = $(this)[0].scrollTop;
     if(nScrollTop + npHight >= nScrollHight)
      alert("滚动条到底部了");
     });
});
Copier après la connexion

PS : contrôle de position de la barre de défilement jQuery :

Faites défiler la barre de défilement de p jusqu'à la position de ses éléments enfants pour faciliter le positionnement automatique.


  var container = $(&#39;p&#39;), 
  scrollTo = $(&#39;#row_8&#39;);

  container.scrollTop( 
  scrollTo.offset().top - container.offset().top + container.scrollTop() 
  );

  // Or you can animate the scrolling: 
  container.animate({ 
  scrollTop: scrollTo.offset().top - container.offset().top + container.scrollTop() 
  });?
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal