おしゃれなボタンアニメーションを作ろう!
問題
今回はおしゃれなボタンの作り方です。
擬似要素before、afterを使っています。
擬似要素before、afterを使っています。
自分の環境に書くコード
<div class="btn">ここをクリック</div>
¥HTML¥
body{
padding: 30px;
}
.btn{
position: relative;
width: 200px;
height: 40px;
line-height: 40px;
text-align: center;
cursor: pointer;
}
.btn::before,.btn::after{
position: absolute;
content: "";
width: inherit;
height: inherit;
border: 2px solid black;
box-sizing: border-box;
transition: .3s;
}
.btn::before{
top: -5px;
left: -5px;
border-right: none;
border-bottom: none;
}
.btn::after{
top: 5px;
right: -5px;
border-top: none;
border-left: none;
}
¥CSS¥
期待する画面
解答ソースコード
.btn:hover::before{
transform: translate(5px,5px);
border-radius: 30px;
}
.btn:hover::after{
border-radius: 30px;
transform: translate(-5px,-5px);
}
¥CSS¥
完了にする!
解説
まず、hover時にbeforeもafterも動いていますよね。これをtransformで実現します。これはtop、leftとかでできるんじゃない?と思われたと思います。やって見るとわかると思いますが、topが動いてからleftが動くと言った感じで別々の動作になりませんか?これだとちょっとブサイクなアニメーションになるので今回はtransformを利用しました。最後にborder-radiusで角を丸くすれば完成です。是非これを機会に自分で面白いボタンを作ってみてください。