Heim > Web-Frontend > CSS-Tutorial > Wie kann ich CSS-Übergänge in JavaScript effizient deaktivieren und wieder aktivieren?

Wie kann ich CSS-Übergänge in JavaScript effizient deaktivieren und wieder aktivieren?

Linda Hamilton
Freigeben: 2024-11-28 22:47:11
Original
476 Leute haben es durchsucht

How Can I Efficiently Disable and Re-enable CSS Transitions in JavaScript?

CSS-Übergänge deaktivieren und wieder aktivieren

In einer typischen Webanwendung können DOM-Elemente verschiedenen CSS-Übergängen unterliegen. Es kann jedoch vorkommen, dass Sie diese Effekte bei bestimmten Vorgängen vorübergehend deaktivieren müssen, z. B. bei der Größenänderung eines Elements.

Elegantes Deaktivieren und erneutes Aktivieren

Auf elegante Weise Wenn Sie CSS-Übergänge deaktivieren und wieder aktivieren, können Sie eine Kombination aus CSS und JavaScript verwenden.

CSS Klasse:

Erstellen Sie eine „notransition“-CSS-Klasse, um die Übergangseigenschaften eines Elements zu überschreiben:

.notransition {
  -webkit-transition: none !important;
  -moz-transition: none !important;
  -o-transition: none !important;
  transition: none !important;
}
Nach dem Login kopieren

JavaScript:

Ohne jQuery:

const someElement = document.getElementById("some-element");

// Disable transitions
someElement.classList.add('notransition');

// Perform CSS changes
doWhateverCssChangesYouWant(someElement);

// Trigger a reflow
someElement.offsetHeight;

// Re-enable transitions
someElement.classList.remove('notransition');
Nach dem Login kopieren

Mit jQuery:

const $someElement = $('#some-element');

// Disable transitions
$someElement.addClass('notransition');

// Perform CSS changes
doWhateverCssChangesYouWant($someElement);

// Trigger a reflow
$someElement[0].offsetHeight;

// Re-enable transitions
$someElement.removeClass('notransition');
Nach dem Login kopieren

Erklärung:

  1. Fügen Sie die Klasse „notransition“ hinzu, um Übergänge zu deaktivieren.
  2. Wenden Sie alle gewünschten an CSS-Änderungen am Element.
  3. Lösen Sie einen erzwungenen Reflow aus, indem Sie die OffsetHeight des Elements lesen Eigenschaft.
  4. Entfernen Sie die Klasse „notransition“, um Übergänge wieder zu aktivieren.

Das obige ist der detaillierte Inhalt vonWie kann ich CSS-Übergänge in JavaScript effizient deaktivieren und wieder aktivieren?. 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