今回は擬似クラス:hoverを使って、ホバーエフェクトを実装していきます。
ボタンのホバーエフェクト
ボタンのベースとなるコードです。
transitionの値を変えることで、エフェクトが変化する時間を調節できます。下記コードの場合は0.3秒で変化します。
CSS
.btn0 { display: inline-block; width: 200px; height: 54px; text-align: center; text-decoration: none; line-height: 54px; outline: none; } .btn0::before, .btn0::after { position: absolute; z-index: -1; display: block; content: ''; } .btn0, .btn0::before, .btn0::after { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; -webkit-transition: all .3s; transition: all .3s; }
斜めのライン
色を変えて、斜めのラインを加えています。「rotate(45deg)」で角度を設定しています。
ボタンのベースとなるコードに、下記のコードを追加します。
HTML
<a class="btn0 button1" href="#">Button</a>
CSS
.button1 { position: relative; z-index: 2; background-color: #333; border: 2px solid #333; color: #fff; line-height: 50px; overflow: hidden; } .button1:hover { background-color: #fff; border-color: #ff36ee; color: #fff; } .button1::after { top: -100%; left: -100%; width: 100%; height: 56px; } .button1:hover::after { top: 0; left: 0; transform: rotate(45deg); background-color: #ff36ee; }
斜めに閉じる
両側から斜めに閉じるような動きをつけています。角度は15度です。
ボタンのベースとなるコードに、下記のコードを追加します。
HTML
<a class="btn0 button2" href="#">Button</a>
CSS
.button2 { position: relative; z-index: 2; background-color: #fff; border: 2px solid #333; color: #000; line-height: 50px; overflow: hidden; } .button2:hover { background-color: #fff; border-color: #000; color: #fff; } .button2::after { left: -100%; width: 250px; height: 56px; } .button2::before { top: -100%; left: 100%; width: 250px; height: 56px; } .button2:hover::before { top: -45%; left: 0; transform: rotate(15deg); background-color: #000; } .button2:hover::after { top: 55%; left: -10%; transform: rotate(15deg); background-color: #000; }
box-shadow
浮かび上がるような動きをつけています。
ボタンのベースとなるコードに、下記のコードを追加します。
HTML
<a class="btn0 button3" href="#">Button</a>
CSS
.button3 { position: relative; background: #fff; border-radius: 2px; height: 54px; width: 200px; box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24); transition: all 0.3s cubic-bezier(.25,.8,.25,1); } .button3:hover { box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22); }
テキストのホバーエフェクト
テキストリンクなどで、マウスホバー時に使えそうなエフェクトです。
上下のライン
テキストの上下に線が表示されます。
下記のコードで実装します。
HTML
<a class="line1" href="#">Sample text</a>
CSS
.line1 { position: relative; display: inline-block; text-decoration: none; } .line1::after { position: absolute; bottom: -4px; left: 0; content: ''; width: 100%; height: 2px; background: #333; transform: scale(0, 1); transform-origin: right top; transition: transform .3s; } .line1:hover::after { transform-origin: left top; transform: scale(1, 1); } .line1::before { position: absolute; top: -4px; right: 0; content: ''; width: 100%; height: 2px; background: #333; transform: scale(0, 1); transform-origin: left top; transition: transform .3s; } .line1:hover::before { transform-origin: right top; transform: scale(1, 1); }