CSS PR

光がボタンの周り回り続けるアニメーション付きボタン【CSSアニメーション】

記事内に商品プロモーションを含む場合があります

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
シラツキ
Web制作会社で働くフロントエンドエンジニア(コーダー)。 ココナラでもお仕事募集しております。 HTML,CSS,JS,WordPress,EC-CUBE,Next.jsなど制作に役立つ情報を発信していきます。 webサイトの運営、修正、制作などお仕事も募集中! お気軽にご相談ください。