【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行目で回転した時に影になる面の背景色を指定(通常の背景色よりも少し暗くすると自然です)