"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Ver animaciones del tema de transición

Ver animaciones del tema de transición

Publicado el 2024-11-04
Navegar:474

View transition theme animations

Agregue un efecto interesante al pasar del modo claro al modo oscuro usando CSS y ver transiciones

copiado de @jhey en twitter

[!NOTA]
Esto supone que ya tienes configurado el modo de luz oscura con algún tipo de función para actualizar tu tema

  1. Agregar el 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. asegúrese de que el atributo data-style="angle" esté establecido en el elemento raíz en SPA reaccionar usamos un gancho useEffect
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);

en SSR se puede configurar directamente en la etiqueta html

  1. envuelva la función de cambio de tema en un documnet.startViewTransition para iniciar la transición de vista
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

se pueden agregar más estilos de transición incluyendo el archivo css correspondiente y agregando el atributo de estilo de datos correcto

      

ejemplo de reacción

Si te gustan este tipo de trucos CSS considera seguir a jhey

Declaración de liberación Este artículo se reproduce en: https://dev.to/tigawanna/view-transition-theme-animations-8n1?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3