HTML
HTMLです。nav-bgが円の部分になります。
HTML
<header id="top-head"> <div id="top-head-inner"> <h1 id="head-logo">Mobile Circle Navigation</h1> <div id="nav-toggle"> <div> <span></span> <span></span> <span></span> </div> </div> <nav id="global-nav"> <ul> <li><a href="#">HOME</a></li> <li><a href="#">PRODUCT</a></li> <li><a href="#">WORKS</a></li> <li><a href="#">COMPANY</a></li> <li><a href="#">CONTACT</a></li> </ul> </nav> <div id="nav-bg"></div> </div> </header>
JavaScript
jQueryはクラスの切り替えだけ使用します。
JavaScript
(function($) { $(function() { $('#nav-toggle').click(function(){ $('body').toggleClass('open'); }); }); })(jQuery);
CSS
円の部分はscaleでアニメーションしています。
小さいのを大きくすると輪郭がボケるので、最初の状態は大きくしてscaleで小さくしています。
ナビゲーション部分はdelayで表示を若干遅らせてます。
CSS
#nav-bg { content: ""; width: 2400px; height: 2400px; margin-right: -1200px; margin-top: -1200px; top: 40px; right: 40px; display: block; position: fixed; background: #17A669; -webkit-border-radius: 50%; border-radius: 50%; -webkit-transition: all .3s ease-out; transition: all .3s ease-out; -webkit-backface-visibility: hidden; backface-visibility: hidden; -webkit-transform: scale(.02); transform: scale(.02); } .open #nav-bg { -webkit-transform: scale(1); transform: scale(1); -webkit-transition: all .6s ease-out; transition: all .6s ease-out; } /* nav-list */ #global-nav ul li { opacity: 0; -webkit-transform: scaleX(0) translateX(-260px); transform: scaleX(0) translateX(-260px); -webkit-transition: none; transition: none; } .open #global-nav ul li { opacity: 1; -webkit-transform: scaleX(1) translateX(0); transform: scaleX(1) translateX(0); -webkit-transition: all .3s ease-out; transition: all .3s ease-out; -webkit-transition-delay: .1s; transition-delay: .1s; }