Maison > interface Web > js tutoriel > Comment désactiver les événements de défilement vers le haut et vers le bas dans jquery

Comment désactiver les événements de défilement vers le haut et vers le bas dans jquery

藏色散人
Libérer: 2021-11-11 11:17:29
original
4664 Les gens l'ont consulté

Comment désactiver les événements de défilement vers le haut et vers le bas dans jquery : 1. Ouvrez le fichier de code correspondant ; 2. Déterminez la hauteur de la barre de défilement ; 3. Via "$(document).bind('mousewheel', function(event, delta)..." Désactivez simplement l'événement de la molette de défilement.

Comment désactiver les événements de défilement vers le haut et vers le bas dans jquery

L'environnement d'exploitation de cet article : système Windows7, jquery version 3.2.1, ordinateur DELL G3

Comment désactiver les événements de défilement vers le haut et vers le bas dans jquery ?

jQuery désactive et active les événements de la molette de la souris

Lorsqu'une page Web est ouverte pour la première fois, il doit s'agir d'une vidéo qui remplit tout l'écran. Si vous souhaitez désactiver l'événement de la molette de la souris, cliquez sur le bouton bas pour le faire. la page glisse vers le bas dans la partie vidéo, j'ai donc cherché la méthode d'événement pour désactiver la molette de la souris

1 Désactivez l'événement de la molette de la souris

$(document).bind('mousewheel', function(event, delta) {return false;});
Copier après la connexion

Après avoir fait glisser la vidéo, vous devez utiliser la molette de la souris pour glisser vers le bas, donc. dissociez l'événement pour que la molette de la souris puisse être utilisée

2. Si vous souhaitez activer l'événement de la molette de la souris, dissociez simplement l'événement directement. D'accord

$(document).unbind('mousewheel');
Copier après la connexion

Mais une fois que la molette de la souris peut être utilisée, le défilement vers le haut reviendra à la vidéo. À ce stade, il sera très embarrassant de constater que vous pouvez utiliser la molette de la souris ou le bouton bas dans la partie vidéo, donc lorsque vous passez à la partie vidéo Pour désactiver l'événement de la molette de la souris

Comment juger le. partie vidéo

1. Jugez d'abord que je glisse vers le haut

ps : jQuery est à moitié cuit, donc il y a du code js et du code jquery dans le code

window.onscroll = function(){
  p=$(this).scrollTop();
  if(t>p){
    console.log("向上滚动");
  }
  t = p;
};
Copier après la connexion

2 Ensuite, jugez la barre de défilement si la hauteur est inférieure à. la hauteur d'un écran de la page, voici une fonction pour obtenir la hauteur d'un écran

// 获取浏览器窗口的可视区域的高度
function getViewPortHeight() {
  return document.documentElement.clientHeight || document.body.clientHeight;
}
window.onscroll = function(){
  p=$(this).scrollTop();
  let height = getViewPortHeight();
  if (p >= height){
    $(document).unbind('mousewheel');
  }
  if(t>p){
    if (p < height) {
        $(document).bind('mousewheel', function(event, delta) {
          return false;
        });
        $('html,body').animate({scrollTop:0},1000);
      }
    }
  }
  t = p;
};
Copier après la connexion

Mais cela désactivera ou activera à l'infini l'événement de la molette de la souris pour le document, donc triste

Obtenez l'événement que l'événement. a été lié à

Utilisez

$._data(obj[0],"event")
var objEvt = $._data($(document)[0], 'events');
window.onscroll = function(){
  p=$(this).scrollTop();
  let height = getViewPortHeight();
  if (p >= height){
    $(document).unbind(&#39;mousewheel&#39;);
    objEvt = $._data($(document)[0], 'events');
  }
  if(t>p){
    if (p < height) {
      if (!objEvt){
        $(document).bind('mousewheel', function(event, delta) {
          return false;
        });
        objEvt = $._data($(document)[0], 'events');
        $('html,body').animate({scrollTop:0},1000);
      }
    }
  }
  t = p;
};
Copier après la connexion

Si l'élément a été lié à l'événement, il ne sera pas lié, ou si l'élément a lié l'événement, dissociez l'élément

Apprentissage recommandé : "Tutoriel vidéo jquery"

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