Heim > Web-Frontend > js-Tutorial > Wie kann ich das Scrollen in JavaScript für eine bessere Benutzererfahrung vorübergehend deaktivieren?

Wie kann ich das Scrollen in JavaScript für eine bessere Benutzererfahrung vorübergehend deaktivieren?

Susan Sarandon
Freigeben: 2024-12-23 22:54:14
Original
927 Leute haben es durchsucht

How Can I Temporarily Disable Scrolling in JavaScript for a Better User Experience?

Deaktivieren Sie das Scrollen vorübergehend in Javascript für ein nahtloses Benutzererlebnis

Das vorübergehende Aussetzen des Scrollens kann das Benutzererlebnis verbessern, wenn Sie mit Animationen arbeiten, z das jQuery scrollTo-Plugin. Während das vollständige Deaktivieren des Scrollens wie eine einfache Lösung erscheinen mag, bietet die Beibehaltung der Sichtbarkeit der Scrollleiste bei gleichzeitiger Verhinderung von Interaktionen einen eleganteren Ansatz.

Um dies zu erreichen, konzentrieren wir uns auf das Abbrechen von Interaktionsereignissen, die damit verbunden sind mit Maus- und Touch-Scrollen, einschließlich Tastaturtasten.

[Funktioniert Demo]

// Event Codes for Navigation Keys
var keys = {37: 1, 38: 1, 39: 1, 40: 1};

// Prevent Default Scrolling
function preventDefault(e) {
  e.preventDefault();
}

// Cancel Scrolling for Navigation Keys
function preventDefaultForScrollKeys(e) {
  if (keys[e.keyCode]) {
    preventDefault(e);
    return false;
  }
}

// Disable Scrolling
function disableScroll() {
  window.addEventListener('DOMMouseScroll', preventDefault, false); // Firefox
  window.addEventListener('wheel', preventDefault, false); // Desktop
  window.addEventListener('touchmove', preventDefault, false); // Mobile
  window.addEventListener('keydown', preventDefaultForScrollKeys, false); // Keyboard
}

// Enable Scrolling
function enableScroll() {
  window.removeEventListener('DOMMouseScroll', preventDefault, false);
  window.removeEventListener('wheel', preventDefault, false); 
  window.removeEventListener('touchmove', preventDefault, false);
  window.removeEventListener('keydown', preventDefaultForScrollKeys, false);
}
Nach dem Login kopieren

Durch den Aufruf von unlockScroll() verhindern wir effektiv das Scrollen, während die scrollTo-Animation läuft. Sobald die Animation abgeschlossen ist, kann enableScroll() verwendet werden, um die Scrollfunktion wiederherzustellen.

Update: Erweiterter Support

Diese Lösung wurde aktualisiert, um nahtlos auf modernen Mobilgeräten zu funktionieren Browser und Chrome-Desktop. Passive Listener sind jetzt integriert, um die Leistung und die Reaktionsfähigkeit des Benutzers aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWie kann ich das Scrollen in JavaScript für eine bessere Benutzererfahrung vorübergehend deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage