"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Ver animações do tema de transição

Ver animações do tema de transição

Publicado em 2024-11-04
Navegar:968

View transition theme animations

Adicione um efeito legal ao mudar do modo claro para o escuro usando CSS e visualize transições

copiado de @jhey no Twitter

[!OBSERVAÇÃO]
Isso pressupõe que você já tenha configurado o modo luz escura com algum tipo de função para atualizar seu tema

  1. Adicione o 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%);
    }
  }

  1. garantir que o atributo data-style="angle" esteja definido no elemento raiz no SPA react usamos um gancho useEffect
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);

em SSR pode ser definido diretamente na tag html

  1. envolva sua função de mudança de tema em um documnet.startViewTransition para iniciar a transição de visualização
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

mais estilos de transição podem ser adicionados incluindo o arquivo css correspondente e adicionando o atributo de estilo de dados correto

      

exemplo de reação

Se você gosta desse tipo de truque de CSS, considere seguir jhey

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/tigawanna/view-transition-theme-animations-8n1?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3