今回は擬似クラス: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);
}

