[CSS]水平ナビゲーションの各アイテムをホバー時に、くるくるっと回転させるテクニック
Post on:2015年1月8日
ナビゲーションの各アイテムをホバーすると、くるくるっと気持ちいいアニメーションで回転させるスタイルシートのテクニックを紹介します。
HTMLは非常にシンプルなので、簡単に利用できると思います。

実際の動きは、下記ページでお楽しみください。

実装
HTML
HTMLは非常にシンプルです。
<nav> <a href="#">Home</a> <a href="#">About us</a> <a href="#">Serviсes</a> <a href="#">Contacts</a> </nav>
CSS
ナビゲーションの各アイテムはflexboxで配置し、くるくるっとしたアニメーションはtransformで設定します。
body { font-family: "Open Sans Condensed" sans-serif; display: -webkit-flex; display: -ms-flexbox; display: flex; -webkit-justify-content: center; -ms-flex-pack: center; justify-content: center; height: 100vh; background: #2c3e50; } nav { -webkit-flex: 1 1 1; -ms-flex: 1 1 1; flex: 1 1 1; -webkit-align-self: center; -ms-flex-item-align: center; align-self: center; } a { font-size: 0.7rem; text-decoration: none; padding: 1rem; background: #34495e; color: rgba(255,255,255,0.8); text-transform: uppercase; letter-spacing: 0.133rem; } a:hover { -webkit-animation: rotateLink 0.5s cubic-bezier(0.53, 0.23, 0.61, 1.25) forwards; animation: rotateLink 0.5s cubic-bezier(0.53, 0.23, 0.61, 1.25) forwards; background: #233140; color: #fff; } a:active { background: #1a242f; } a:first-child { border-radius: 1rem 0 0 1rem; } a:last-child { border-radius: 0 1rem 1rem 0; } @-webkit-keyframes rotateLink { from { -webkit-transform: rotateX(0deg); transform: rotateX(0deg); } to { -webkit-transform: rotateX(360deg); transform: rotateX(360deg); } } @keyframes rotateLink { from { -webkit-transform: rotateX(0deg); transform: rotateX(0deg); } to { -webkit-transform: rotateX(360deg); transform: rotateX(360deg); } }
transformの対応ブラウザは、下記の通り。

sponsors