Heim > Web-Frontend > js-Tutorial > Wie kann ich das Scrollen in JavaScript vorübergehend deaktivieren und gleichzeitig die Sichtbarkeit der Bildlaufleiste beibehalten?

Wie kann ich das Scrollen in JavaScript vorübergehend deaktivieren und gleichzeitig die Sichtbarkeit der Bildlaufleiste beibehalten?

Mary-Kate Olsen
Freigeben: 2024-12-14 14:38:12
Original
211 Leute haben es durchsucht

How Can I Temporarily Disable Scrolling in JavaScript While Maintaining Scrollbar Visibility?

Temporäres Scrollen in JavaScript deaktivieren

Bei Verwendung des jQuery-Plugins scrollTo kann es problematisch werden, wenn der Benutzer während der Animation scrollt im Gange. Während es möglich ist, das Scrollen zu deaktivieren, indem man die CSS-Eigenschaft „overflow“ auf „hidden“ setzt, ist es wünschenswerter, die Scrollbar sichtbar, aber inaktiv zu lassen.

Um dies zu erreichen, ist es notwendig, mit dem Scrollen verbundene Interaktionsereignisse zu verhindern. Dazu gehören Maus- und Touch-Scrolls sowie Schaltflächen, die das Scrollen auslösen.

Code-Implementierung

Der folgende JavaScript-Code zeigt, wie das Scrollen vorübergehend deaktiviert und aktiviert wird:

<br>// Scroll-Ereignis verhindern<br>function präventDefault(e) {<br> e.preventDefault();<br>}</p>
<p>// Mit dem Scrollen verknüpfte Tasten verhindern<br>function präventDefaultForScrollKeys(e) {<br> if (keys[e.keyCode]) {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">preventDefault(e);
return false;
Nach dem Login kopieren

}
}

// Dict für Scroll-Taste codes
const keys = {37: 1, 38: 1, 39: 1, 40: 1};

// Scrollen deaktivieren
function unlockScroll() {
window.addEventListener( 'DOMMouseScroll', verhindernDefault, false); // älteres FF
window.addEventListener('wheel', präventDefault, { passive: false }); // moderner Desktop
window.addEventListener('touchmove', präventDefault, { passive: false }); // mobile
window.addEventListener('keydown', präventDefaultForScrollKeys, false);
}

// Scrollen aktivieren
function enableScroll() {
window.removeEventListener('DOMMouseScroll ', präventDefault, false);
window.removeEventListener('wheel', präventDefault, { passive: false });
window.removeEventListener('touchmove', präventDefault, { passive: false });
window.removeEventListener('keydown', präventDefaultForScrollKeys, false);
}

Um das Scrollen zu deaktivieren, rufen Sie einfach die Funktion „disableScroll()“ auf. Um das Scrollen wieder zu aktivieren, rufen Sie die Funktion enableScroll() auf.

Das obige ist der detaillierte Inhalt vonWie kann ich das Scrollen in JavaScript vorübergehend deaktivieren und gleichzeitig die Sichtbarkeit der Bildlaufleiste beibehalten?. 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 Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage