この記事の内容は、純粋な CSS を使用して金属光沢のある 3 次元ボタンのアニメーション効果を実現する方法に関するものです (ソースコードが添付されています)。必要な友人が参考になれば幸いです。役に立ちますように。
https://github.com/comehope/front-end-daily-challenges/tree/master/004-metallic-glossy-3d-button-Effects
DOM 内のコンテナを定義します:
<div class="box">BUTTON</div>
コンテナの中央表示:
html, body { height: 100%; display: flex; align-items: center; justify-content: center; background-color: skyblue; }
ボタンのサイズの調整を容易にするために、変数が使用されます:
.box { background: linear-gradient(to right, gold, darkorange); color: white; --width: 250px; --height: calc(var(--width) / 3); width: var(--width); height: var(--height); text-align: center; line-height: var(--height); font-size: calc(var(--height) / 2.5); font-family: sans-serif; letter-spacing: 0.2em; border: 1px solid darkgoldenrod; border-radius: 2em; }
を設定します。ボタンの 3D スタイル:
.box { transform: perspective(500px) rotateY(-15deg); text-shadow: 6px 3px 2px rgba(0, 0, 0, 0.2); box-shadow: 2px 0 0 5px rgba(0, 0, 0, 0.2); }
ボタンを定義します。 マウスオーバー アニメーション効果:
.box:hover { transform: perspective(500px) rotateY(15deg); text-shadow: -6px 3px 2px rgba(0, 0, 0, 0.2); box-shadow: -2px 0 0 5px rgba(0, 0, 0, 0.2); } .box { transition: 0.5s; }
疑似要素を使用して光沢を追加します:
.box { position: relative; } .box::before { content: ''; position: absolute; width: 100%; height: 100%; background: linear-gradient(to right, transparent, white, transparent); left: 0; }
光沢アニメーション効果を定義します:
.box::before { left: -100%; transition: 0.5s; } .box:hover::before { left: 100%; }
最後に、コンテナの外側のコンテンツを非表示にします:
.box { overflow: hidden; }
これで完了です。
関連する推奨事項:
純粋な CSS を使用してテキスト切断のアニメーション効果を実現する方法 (ソース コード付き)
CSS を使用してグラデーション アニメーション境界線の効果を実現する方法 (コード付き)方法CSSとカラーミキシングモードを使用してローダーアニメーション効果を実現します(コード付き)
以上が純粋な CSS を使用して金属光沢のある立体ボタンのアニメーション効果を実現する方法 (ソースコード添付)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。