Maison >interface Web >tutoriel CSS >Donc, vous souhaitez animer la propriété d'affichage

Donc, vous souhaitez animer la propriété d'affichage

Lisa Kudrow
Lisa Kudroworiginal
2025-03-09 09:51:11426parcourir

Animer la propriété display: une révolution CSS?

Le groupe de travail CSS a récemment approuvé une proposition permettant l'animation et les transitions de la propriété display - un développement significatif. Cela signifie que nous pourrions animer en douceur les transitions entre, par exemple, display: block et display: none.

So, you’d like to animate the display property

Cela présente un défi unique. Actuellement, le réglage display: none arrête brusquement toutes les animations en cours d'exécution. L'ajouter les redémarre. La spécification clarifie: le réglage display: none termine des animations; Changer display de none à une autre valeur les redémarre.

Ce comportement apparemment paradoxal a initialement suggéré que la proposition était irréalisable. Cependant, la clé est que @keyframes priorise toute valeur d'affichage autre que none. Cela empêche none d'interrompre ou de redémarrer l'animation jusqu'à ce qu'il soit complètement terminé.

L'explication de Miriam (appelons ces «toots», allons-nous?) Clarifie le processus: il ne s'agit pas d'interpoler entre block et none, mais permettant plutôt que block reste actif jusqu'à ce que l'animation se termine, à quel point none> en toute sécurité prend effet. L'animation reste discrète; Nous basculons entre les États après L'animation se termine.

L'exemple de Robert Flack illustre ceci:

@keyframes slideaway {
  from { display: block; }
  to { transform: translateY(40px); opacity: 0;}
}

.hide {
  animation: slideaway 200ms;
  display: none;
}

Le cadre initial priorise display: block, le remplacement display: none et la permission de l'animation avant none prend effet.

l'exemple de Mastodon de Miriam utilise des transitions:

.hide {
  transition: opacity 200ms, display 200ms;
  display: none;
  opacity: 0;
}

.hide:hover {
  display: block;
  opacity: 1;
}

Ici, display: none est initialement défini, supprimant l'élément du flux de document. En survol, la valeur block est prioritaire, permettant la transition une fois la transition d'opacité terminée.

Bien qu'il s'agisse d'un progrès significatif, il reste beaucoup à résoudre. L'interaction avec plusieurs animations, des animations infinies, des animations inversées, etc., nécessite une considération supplémentaire. Néanmoins, c'est un pas en avant révolutionnaire!

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