「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > トランジションテーマのアニメーションを表示する

トランジションテーマのアニメーションを表示する

2024 年 11 月 4 日に公開
ブラウズ:657

View transition theme animations

CSS とビューの遷移を使用して、ライト モードからダーク モードに遷移するときにクールな効果を追加します。

twitter の @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 React では 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 ファイルをインクルードし、正しいデータ スタイル属性を追加することで、より多くのトランジション スタイルを追加できます

      

反応例

このタイプの CSS トリックが好きなら、jhey をフォローすることを検討してください

リリースステートメント この記事は次の場所に転載されています: https://dev.to/tigawanna/view-transition-theme-animations-8n1?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3