Dans le développement Web, il est souvent nécessaire de désactiver les effets de transition CSS lors de la modification d'un élément pour garantir un redimensionnement ou des ajustements d'apparence fluides. Voici la solution la plus élégante :
Créer une classe CSS :
.notransition { -webkit-transition: none !important; -moz-transition: none !important; -o-transition: none !important; transition: none !important; }
Utiliser JavaScript (sans jQuery) :
someElement.classList.add('notransition'); // Disable transitions doWhateverCssChangesYouWant(someElement); someElement.offsetHeight; // Trigger a reflow, flushing the CSS changes someElement.classList.remove('notransition'); // Re-enable transitions
Utiliser JavaScript avec jQuery :
$someElement.addClass('notransition'); // Disable transitions doWhateverCssChangesYouWant($someElement); $someElement[0].offsetHeight; // Trigger a reflow, flushing the CSS changes $someElement.removeClass('notransition'); // Re-enable transitions
Explication :
Cette solution utilise une classe CSS pour remplacer tous les paramètres de transition existants avec !important. Il ajoute ensuite la classe à l'élément, apporte les modifications CSS souhaitées, force une redistribution à l'aide de offsetHeight et supprime enfin la classe pour réactiver les transitions.
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!