Lihat animasi tema peralihan

Patricia Arquette
Lepaskan: 2024-09-25 17:11:42
asal
951 orang telah melayarinya

View transition theme animations

Tambahkan kesan sejuk apabila menukar daripada mod terang ke gelap menggunakan css dan peralihan paparan

disalin daripada @jhey di twitter

[!NOTA]
Ini mengandaikan anda sudah mempunyai persediaan mod cahaya gelap anda dengan beberapa jenis fungsi untuk mengemas kini tema anda

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

Salin selepas log masuk
  1. pastikan atribut data-style="angled" ditetapkan pada elemen akar dalam tindak balas SPA kami menggunakan cangkuk useEffect
  useEffect(() => {
    // set the data-style attribute
    document.documentElement.dataset.style = "angled";
  }, []);
Salin selepas log masuk

dalam SSR ia boleh ditetapkan terus dalam tag html

  1. balut fungsi perubahan tema anda dalam documnet.startViewTransition untuk memulakan peralihan paparan
  function transitionColors() {
    if (typeof window !== "undefined") {
      document.startViewTransition(() => {
        const newTheme = theme  === "light" ? "dark" : "light";
        document.documentElement.dataset.theme = newTheme;
        updateTheme(newTheme);
      });
    }
  }

Salin selepas log masuk

lebih banyak gaya peralihan boleh ditambah dengan memasukkan fail css yang sepadan dan menambah atribut gaya data yang betul

      <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>
Salin selepas log masuk

contoh tindak balas

Jika anda suka helah css jenis ini pertimbangkan untuk mengikuti jhey

Atas ialah kandungan terperinci Lihat animasi tema peralihan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!