【css3】ボタンがキューブ状にクルッと回転するホバーエフェクト実装方法
2014 October 05
css3では様々なホバーエフェクトを実装できますが、今回はホバー時に「キューブ状にクルッと回転する」ボタンを実装してみます。
実装sample
Button
【対応ブラウザ】
Chrome 11+
Firefox 4+
Opera 11.10+
safari 5.1+
IE 10+
Firefox 4+
Opera 11.10+
safari 5.1+
IE 10+
【html】
<a class="button" href="#"><span data-hover="ボタン">Button</span></a>
data-hoverで回転後のテキストを指定します。今回は「Button」から「ボタン」に変わるようにしてみました。
【css】
a.button {
line-height: 32px;
-webkit-perspective: 300px;
-moz-perspective: 300px;
perspective: 300px;
text-align: center;
}
a.button span {
position: relative;
display: inline-block;
padding: 0 20px;
background: #0FA7A9;
-webkit-transition: -webkit-transform 0.3s;
-moz-transition: -moz-transform 0.3s;
transition: transform 0.3s;
-webkit-transform-origin: 50% 0;
-moz-transform-origin: 50% 0;
transform-origin: 50% 0;
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
}
a.button span::before {
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 100%;
background: #0A8184;
content: attr(data-hover);
-webkit-transition: background 0.3s;
-moz-transition: background 0.3s;
transition: background 0.3s;
-webkit-transform: rotateX(-90deg);
-moz-transform: rotateX(-90deg);
transform: rotateX(-90deg);
-webkit-transform-origin: 50% 0;
-moz-transform-origin: 50% 0;
transform-origin: 50% 0;
}
a.button:hover span,
a.button:focus span {
-webkit-transform: rotateX(90deg) translateY(-22px);
-moz-transform: rotateX(90deg) translateY(-22px);
transform: rotateX(90deg) translateY(-22px);
}
a.button:hover span::before,
a.button:focus span::before {
background: #0FA7A9;
}
・13〜15行目で回転速度の指定
・29行目で回転した時に影になる面の背景色を指定(通常の背景色よりも少し暗くすると自然です)






