«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Просмотр анимации темы перехода

Просмотр анимации темы перехода

Опубликовано 4 ноября 2024 г.
Просматривать:677

View transition theme animations

Добавьте крутой эффект при переходе из светлого в темный режим с помощью CSS и переходов просмотра.

скопировано из твиттера @jhey

[!ПРИМЕЧАНИЕ]
Предполагается, что у вас уже настроен режим темного света с какой-то функцией для обновления темы

  1. Добавьте 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. убедитесь, что атрибут data-style="angled" установлен для корневого элемента в реакции SPA мы используем хук useEffect
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);

в SSR его можно установить непосредственно в теге html

  1. оберните функцию изменения темы в documnet.startViewTransition, чтобы начать переход представления
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

можно добавить дополнительные стили перехода, включив соответствующий файл CSS и добавив правильный атрибут data-style

      

пример реакции

Если вам нравятся подобные трюки с CSS, рассмотрите возможность подписки на jhey

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/tigawanna/view-transition-theme-animations-8n1?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3