背景今日、CodePen を閲覧していたところ、非常に興味深い効果を見つけました。 CodePen デモ - Bennett Feely によるマテリアル デザイン メニュー この効果については、まだ調査して学ぶ価値のある点がいくつかあります。以下で見てみましょう。 同様の効果を得るにはどうすればよいでしょうか?まず、考えてみてください。もし上記の効果を達成するように求められたら、あなたはどうしますか? ここで、考えられる解決策をいくつか簡単に挙げます。
一つずつ素早く確認してみましょう。 ボックスシャドウの使用
<div class="g-container"> <div class="g-item"></div> </div> .g-コンテナ{ 位置: 相対的; 幅: 400ピクセル; 高さ: 300px; オーバーフロー: 非表示; } .g-アイテム{ 位置: 絶対; 幅: 48px; 高さ: 48px; 境界線の半径: 50%; 背景: #fff; 上: 20px; 左: 20px; ボックスシャドウ: 0 0 0 0 #fff; 遷移: box-shadow .3s 線形; &:ホバー{ ボックスシャドウ: 0 0 0 420px #fff; } } 核となるのは:
効果は以下のとおりです。 アニメーション全体はシミュレートされていますが、致命的な問題が 2 つあります。
したがって、 放射状グラデーションを使用して次に、 <div class="g-container"></div> @property --size { 構文: '<長さ>'; 継承: false; 初期値: 24px; } .g-コンテナ{ 位置: 相対的; 幅: 400ピクセル; 高さ: 300px; オーバーフロー: 非表示; 背景: 放射状グラデーション(円、44px 44px、#fff 0、#fff var(--size)、透明 var(--size)、透明 0); 遷移: --size .3s 線形; &:ホバー{ --サイズ: 450px; } } 放射状グラデーションアニメーション効果を制御することで、ホバー時に元の小さな円の背景を大きな円の背景に変更できます。効果は次のとおりです。 うーん、確かに効果は回復しましたが、問題も致命的です:
CodePen デモ - 放射状グラデーションのズームインアニメーション えーっと、スケーリング したがって、上記の効果を実現したい場合の核心は次のとおりです。
クリップパスを使用して動的な領域クリッピングを実現するしたがって、ここでは実際に動的な領域の切り取りが必要になります。 私のこの記事では、overflow: hidden を使用せずに overflow: hidden を実装する方法を説明します。では、CSS で要素をクリップするいくつかの方法が紹介されていますが、その中でもこの効果に最も適しているのは clip-path です。 <div class="g-container"></div> .g-コンテナ{ 位置: 相対的; 幅: 400ピクセル; 高さ: 300px; オーバーフロー: 非表示; トランジション: クリップパス .3s 線形; クリップパス: 円(20px、44px、44px); 背景: #fff; &:ホバー{ クリップパス: 円(44px 44px で 460px); } } 最初に 効果は以下のとおりです。 この方法では、タイトル画像の効果を完璧に実現でき、組み込みの DOM 要素をこの div に直接書き込むことができます。 <div class="g-container"> <ul> <li>11111</li> <li>22222</li> <li>33333</li> <li>44444</li> </ul> </div> 効果は以下のとおりです。 CodePen デモ - クリップパスのズームインアニメーション これは、クリップパスを使用して動的な領域クリッピングを実現する非常に興味深いテクニックです。誰もがこれをマスターできることを願っています。 JS で clip-path を使用して動的な領域クロッピングを実装する方法についての記事はこれで終わりです。clip-path 領域クロッピングに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: MySQLシリーズ マルチテーブル結合クエリ92および99構文例詳細チュートリアル
>>: CSS クリアフロートクリア:both サンプルコード
MySQL DATE_ADD(date,INTERVAL expr type) 関数と ADDDA...
私が最も頻繁に使用するコマンドは次の通りです:選択肢CDギットls ssh須藤数週間前、私はこの R...
目次非同期トラバーサル非同期反復可能トラバーサル非同期反復生成非同期メソッドと非同期ジェネレーター非...
最近、Docker に MySQL をインストールしたところ、データベースの時刻がシステム時刻と 8...
プロパティやイベントがあるにもかかわらず、JavaScript で子コンポーネントに直接アクセスする...
<Head>……</head> は <HTML> のファイル ヘ...
目次序文始める序文サーバーのデフォルトの SSH ポート番号は通常 22 であるため、ほとんどのユー...
環境ホスト名IPアドレス仕えるジェンキンス192.168.216.200トムキャット、ジェンキンスサ...
質問はhttps://www.zhihu.com/question/440066129/answer...
目次テーマを動的に変更する最初の方法: 動的コンポーネント2番目の方法はルーティング分離です要約する...
目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...
この記事では、例を使用して、MySQL サーバーのスレッド数を表示する方法について説明します。ご参考...
VMware Toolsをインストールすると、仮想マシンホスト間で①テキストをコピーして貼り付けるこ...
目次1. Tomcatを監視する方法2. Java独自の監視コマンド3. Tomcatのトラブルシュ...
Redis の紹介Redis は完全にオープンソースで無料であり、BSD プロトコルに準拠しており、...