CSSだけでできるかっこいいボタンを作成しました。
サイバー系(?)かっこいい系の動きとして取り入れると合いそうですね!
CSSアニメーションで光がボタンの周り回り続けるアニメーション付きボタンを作る
では早速実装していきます。
<div class="btn"> <a href="#"> <span></span> <span></span> <span></span> <span></span> ボタン </a> </div>
spanwo動かしていく行きます。
空タグはあんまり使いたくないけど仕方ないね!
CSSにてアニメーションを付けていきます。
a{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); text-transform: uppercase; color: #1670f0; padding: 30px 60px; font-size: 30px; letter-spacing: 2px; text-decoration: none; box-shadow: 0 20px 50px rgba(255,255,255,0.05); overflow: hidden; } a:before{ position: absolute; top: 2px; left: 2px; bottom: 2px; content: ''; width: 50%; background: rgba(255,255,255,0.05); } a span:nth-child(1){ position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(to right, #0c002b, #1779ff); animation: animate1 2s linear infinite; } @keyframes animate1{ 0%{ transform: translateX(-100%); } 100%{ transform: translateX(100%); } } a span:nth-child(2){ position: absolute; top: 0; right: 0; width: 2px; height: 100%; background: linear-gradient(to bottom, #0c002b, #1779ff); animation: animate2 2s linear infinite; animation-delay: 1s; } @keyframes animate2{ 0%{ transform: translateY(-100%); } 100%{ transform: translateY(100%); } } a span:nth-child(3){ position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(to left, #0c002b, #1779ff); animation: animate3 2s linear infinite; } @keyframes animate3{ 0%{ transform: translateX(100%); } 100%{ transform: translateX(-100%); } } a span:nth-child(4){ position: absolute; top: 0; left: 0; width: 2px; height: 100%; background: linear-gradient(to top, #0c002b, #1779ff); animation: animate4 2s linear infinite; animation-delay: 1s; } @keyframes animate4{ 0%{ transform: translateY(100%); } 100%{ transform: translateY(-100%); } }
Scssはこちら
a { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); text-transform: uppercase; color: #1670f0; padding: 30px 60px; font-size: 30px; letter-spacing: 2px; text-decoration: none; box-shadow: 0 20px 50px rgba(255, 255, 255, 0.05); overflow: hidden; &:before { position: absolute; top: 2px; left: 2px; bottom: 2px; content: ''; width: 50%; background: rgba(255, 255, 255, 0.05); } span { &:nth-child(1) { position: absolute; top: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(to right, #0c002b, #1779ff); animation: animate1 2s linear infinite; } &:nth-child(2) { position: absolute; top: 0; right: 0; width: 2px; height: 100%; background: linear-gradient(to bottom, #0c002b, #1779ff); animation: animate2 2s linear infinite; animation-delay: 1s; } &:nth-child(3) { position: absolute; bottom: 0; left: 0; width: 100%; height: 2px; background: linear-gradient(to left, #0c002b, #1779ff); animation: animate3 2s linear infinite; } &:nth-child(4) { position: absolute; top: 0; left: 0; width: 2px; height: 100%; background: linear-gradient(to top, #0c002b, #1779ff); animation: animate4 2s linear infinite; animation-delay: 1s; } } } @keyframes animate1 { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } } @keyframes animate2 { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } } @keyframes animate3 { 0% { transform: translateX(100%); } 100% { transform: translateX(-100%); } } @keyframes animate4 { 0% { transform: translateY(100%); } 100% { transform: translateY(-100%); } }
web制作を勉強したい方におすすめの教材も紹介しているので是非参考にしてみてください。
web制作の勉強にオススメの書籍を紹介します!
ABOUT ME