最終的な効果は次のようになります。 アニメーションは2つのステップに分かれています
ランニング軌道を開発する まず、エネルギーの流れのパイプラインとして、下部に水色の半透明の道路を描く必要があります。ここでは SVG パスを使用します (実際には、ここで背景画像を直接使用できます)。コードは次のとおりです。 <!-- コードは react で書かれており、トラバーサルと一部のコードは削除されています --> <svg> <!-- ツールの説明プロンプト。フィルタリングやその他の操作の塗りつぶしに使用されます。ボールの下部の輝きはここにあります --> <定義> <radialGradient id="grad1" cx="50%" cy="50%" r="50%" fx="50%" fy="50%"> <stop offset="0%" style={{ stopColor: "rgba(2,246,255,.5)" }} /> <stop offset="100%" style={{ stopColor: "rgba(2,246,255,0)" }} /> </放射状グラデーション> </defs> <!-- ここでは、N 本の水色の線のパス d をパスとしてトラバースします --> <path d={item.path} ストローク="rgba(29,159,167,0.4)" 塗りつぶし="透明" ストローク幅={5}></path> ... <!-- 2 つの円を重ねて形成された光るボールです --> <g> <circle cx={cx} cy={cy} r="15" fill="url(#grad1)"></circle> <circle cx={cx} cy={cy} r="5" fill="rgba(2,246,255)"></circle> </g> </svg> DOMを作成し、パスに沿ってアニメーションする ここでの核となる原則は、 offset-path プロパティを通じてモーション オフセット パスを設定し、次に offset-distance を通じてオフセットを設定することです。これにより、要素は CSS3 アニメーションを通じて特定の軌道に沿って移動できるようになります。 <!-- ここでは、パス ポイントが一貫しているように、ボックスと SVG ボックスが同じ幅と高さで揃っていることを確認する必要があります --> <div className={styles.animate}> <!-- ここでは N 個の div をトラバースし、各 div を offsetPath (SVG のパスの d の値) に従ってフローさせます --> <!-- 負の animationDelay はレンダリング前に実行されることを意味し、レンダリング中にパス全体をカバーできます --> <div key={index} className={styles.point3} style={{ "offsetPath": "path('M 105 34 L 5 34')", "animationDelay": `-${index * 1}s`, "animationDuration": '5s', 'animationPlayState': `${stop ? 'paused' : 'running'}` }}></div> ... </div> .point3 { 幅: 10px; 高さ: 2px; // オフセットパス: path('M 248 108 L 248 172 L 1510 172'); オフセット距離: 0%; アニメーション: フロー 20 秒 線形 法線 無限; 背景画像: 線形グラデーション(右へ、rgba(255, 255, 255, 0) 10%、#FEFE02); 位置: 絶対; 左: 0; 右: 0; } } @keyframesフロー{ から { オフセット距離: 0%; } に { オフセット距離: 100%; } } これで、SVG で CSS アニメーションを使用してエネルギー フロー効果を作成する方法についての説明は終了です。SVG で CSS アニメーションを使用する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
<<: MySQL の current_timestamp の落とし穴とその解決策を共有する
聞く: CSS を使用してハイパーリンクのスタイルを設定しましたが、ホバーしても機能しません。なぜこ...
MySQL はオープンソースの小規模リレーショナル データベース管理システムです。現在、MySQL...
監視ホストの追加ホスト 192.168.179.104 が zabbix 監視項目に追加されます (...
トークンの有効期限が切れたら、ページを更新します。ページの読み込み時にバックエンドに複数のリクエスト...
問題の背景業務システムのサーバ監視システムからディスク使用率が90%に達したという早期警告通知が来た...
まずは効果の写真をお見せしましょう。 個人的には効果は問題ないと思います。アプリが写真を学習する時間...
var numA = 0.1; var numB = 0.2; アラート(numA + numB)...
目次開発環境ゲームエンジンのコンセプトCocos Creatorについてプロジェクト構造コード編集環...
1.デバイス幅定義: 出力デバイスの画面表示幅を定義します。 Web ページが Safari で開か...
以前、テーブル結合クエリを書いていたとき、whereとonの違いがわからず、SQLに小さな問題が発生...
基本的な構文CREATE VIEW ステートメントを使用してビューを作成できます。構文の形式は次のと...
目次ユーティリティ: vue での使用:説明する:画像安定化:スロットル:ユーティリティ: // 手...
Web ページのスタイル設定に関しては、プロジェクトで純粋な CSS または SCSS (および他...
目次SQLを理解するSELECTを理解するエイリアス定数をクエリし、固定定数列を追加します。重複行を...
より使いやすい Web アプリケーションを設計するための 10 のヒントをご紹介します。ヒント1: ...