Maison > interface Web > tutoriel CSS > le corps du texte

Afficher les animations du thème de transition

Patricia Arquette
Libérer: 2024-09-25 17:11:42
original
1045 Les gens l'ont consulté

View transition theme animations

Ajoutez un effet sympa lors du passage du mode clair au mode sombre à l'aide de CSS et de transitions d'affichage

copié de @jhey sur Twitter

[!NOTE]
Cela suppose que vous avez déjà configuré votre mode lumière sombre avec une sorte de fonction pour mettre à jour votre thème

  1. Ajouter le CSS
  /* Angled */
  [data-style='angled']::view-transition-old(root) {
    animation: none;
    z-index: -1;
  }

  [data-style='angled']::view-transition-new(root) {
    animation: unclip 1s;
    clip-path: polygon(-100vmax 100%, 100% 100%, 100% -100vmax);
  }

  @keyframes unclip {
    0% {
      clip-path: polygon(100% 100%, 100% 100%, 100% 100%);
    }
  }

Copier après la connexion
  1. assurez-vous que l'attribut data-style="angled" est défini sur l'élément racine dans SPA React, nous utilisons un hook useEffect
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);
Copier après la connexion

en SSR, il peut être défini directement dans la balise html

  1. enveloppez votre fonction de changement de thème dans un document documnet.startViewTransition pour démarrer la transition de vue
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

Copier après la connexion

Plus de styles de transition peuvent être ajoutés en incluant le fichier CSS correspondant et en ajoutant l'attribut de style de données correct

      <select
      className="select select-bordered select-sm max-w-xs"
        onChange={(e) =>
          (document.documentElement.dataset.style = e.target.value)
        }
      >
        <option value="default">Default</option>
        <option value="vertical">Vertical</option>
        <option value="wipe">Wipe</option>
        <option value="angled">Angled</option>
        <option value="flip">Flip</option>
        <option value="slides">Slides</option>
      </select>
Copier après la connexion

exemple de réaction

Si vous aimez ce type d'astuces CSS, pensez à suivre jhey

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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal