背景今日、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 サンプルコード
1.VirtualBoxソフトウェアをダウンロードしてインストールするまず、VirtualBox の...
仮想マシンに独自の LAN IP を持たせたいので、テストを容易にするためにブリッジを使用します。 ...
<本文> <div id="ルート"> <h2&...
vertical-align属性は、主にインライン要素の配置を変更するために使用されます。インライン...
必要: vue を使用して QR コードのスキャンを実現します。プラグイン: QRコードリーダー;プ...
シナリオ最大 10000 要素のリストを正しくレンダリングする方法。無限ドロップダウン読み込みテクノ...
Docker は 2013 年のリリース以来、広く注目され、ソフトウェア業界を変える可能性を秘めてい...
序文このプロジェクトでは円形のメニューが必要です。オンラインで検索しましたが、適切なものが見つからな...
async_hooks モジュールは、Node.js バージョン 8.0.0 に正式に追加された実験...
目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...
最近、データベースについて学び始めました。最初にやったことは、データベースとは何か、データベースとデ...
Linux サーバーに Docker をインストールした後、関連する公式 Docker イメージを...
1. 必要なパッケージをダウンロードする wget -P /usr/local https://st...
目次親コンポーネントリストボックスリストコンポーネントボタンコンポーネント PageButton昨年...
この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...