Maison >interface Web >js tutoriel >Comment puis-je désactiver temporairement le défilement pendant les animations jQuery scrollTo ?

Comment puis-je désactiver temporairement le défilement pendant les animations jQuery scrollTo ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-20 01:57:09801parcourir

How Can I Temporarily Disable Scrolling During jQuery scrollTo Animations?

Désactivation temporaire du défilement pendant l'animation jQuery scrollTo

Lors de l'utilisation du plugin scrollTo de jQuery, le défilement peut perturber la fluidité de l'animation. Bien que vous puissiez simplement masquer la barre de défilement, une meilleure solution consiste à désactiver temporairement le défilement sans affecter sa visibilité.

Solution

Au lieu de cibler uniquement l'événement de défilement, la clé est d'annuler également les événements d'interaction associés tels que les défilements de la souris, du toucher et des boutons. Voici un script que vous pouvez utiliser :

// Disable scrolling
function disableScroll() {
  window.addEventListener('DOMMouseScroll', preventDefault, false); // older FF
  window.addEventListener(wheelEvent, preventDefault, wheelOpt); // modern desktop
  window.addEventListener('touchmove', preventDefault, wheelOpt); // mobile
  window.addEventListener('keydown', preventDefaultForScrollKeys, false);
}

// Enable scrolling
function enableScroll() {
  window.removeEventListener('DOMMouseScroll', preventDefault, false);
  window.removeEventListener(wheelEvent, preventDefault, wheelOpt); 
  window.removeEventListener('touchmove', preventDefault, wheelOpt);
  window.removeEventListener('keydown', preventDefaultForScrollKeys, false);
}

Maintenant, vous pouvez désactiver le défilement en appelant DisableScroll() et le réactiver lorsque vous le souhaitez avec EnableScroll().

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!

Déclaration:
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