超级流畅的现代全屏导航,切换时可从页面左边缘滑动。
使用jQuery、CSS/CS3和GSAP的TweenMax.js库构建。
1.创建一个切换元素来打开/关闭导航。
- <div class="wrapper">
- <div class="navbar">
- <div class="nav-toggle">menu</div>
- </div>
- </div>
- .wrapper {
- position: fixed;
- width: 100%;
- height: 100vh;
- }
- .navbar {
- box-sizing: border-box;
- position: fixed;
- width: 6%;
- height: 100vh;
- background: #a72929;
- display: flex;
- align-items: center;
- justify-content: center;
- border-right: 2.4px solid #fff;
- }
- .nav-toggle {
- cursor: pointer;
- transform: rotate(-90deg);
- color: #fff;
- text-transform: uppercase;
- }
2.将菜单项添加到导航中。
- <div class="nav">
- <div class="nav-items">
- <div class="nav-item">
- <a href="#">Home</a>
- <div class="nav-item-wrapper"></div>
- </div>
- <div class="nav-item">
- <a href="#">Portfolio</a>
- <div class="nav-item-wrapper"></div>
- </div>
- <div class="nav-item">
- <a href="#">About</a>
- <div class="nav-item-wrapper"></div>
- </div>
- <div class="nav-item">
- <a href="#">Contact</a>
- <div class="nav-item-wrapper"></div>
- </div>
- </div>
- </div>
- .nav {
- position: fixed;
- width: 0%;
- height: 100%;
- overflow: hidden;
- display: flex;
- align-items: center;
- left: 6%;
- background: #252e2d;
- }
- .nav-items {
- margin: 60px;
- }
- .nav-item {
- position: relative;
- font-size: 120px;
- }
- .nav-item a {
- position: relative;
- top: 140px;
- text-decoration: none;
- color: #a72929;
- text-transform: uppercase;
- font-family: "Monument Extended";
- font-size: 140px;
- font-weight: lighter;
- letter-spacing: -8px;
- transition: 1s;
- }
- .nav-item-wrapper:after {
- content: "";
- position: absolute;
- top: 140px;
- left: 0;
- width: 110%;
- height: 100%;
- background: #252e2d;
- margin: 0 auto;
- transition: 1s;
- }
- .nav-item:after {
- content: "";
- position: absolute;
- top: 45%;
- left: 0;
- width: 0%;
- height: 2.8px;
- background: #fff;
- transition: 0.3s;
- }
- .nav-item:hover:after {
- width: 100%;
- }
- @media (max-width: 990px) {
- html,
- body {
- overflow: hidden;
- }
- .navbar {
- width: 16%;
- }
- .nav {
- left: 16%;
- }
- .nav-item a {
- font-size: 40px;
- letter-spacing: 0;
- }
- .nav-item:after {
- display: none;
- }
- }
3.从CDN加载必要的jQuery和TweenMax JavaScript库。
- <script src="/path/to/cdn/jquery.slim.min.js"></script>
- <script src="/path/to/cdn/TweenMax.min.js"></script>
4.启用全屏导航。
- TweenMax.from(".navbar", 2, {
- left: "-20%",
- ease: Expo.easeInOut,
- delay: 0.4,
- });
- var t1 = new TimelineMax({ paused: true });
- t1.to(".nav", 1.8, {
- width: "94%",
- ease: Expo.easeInOut,
- });
- t1.staggerTo(".nav-item a", 0.6, { top: "0px", ease: Expo.easeInOut }, 0.1, "-=0.8");
- t1.reverse();
- $(document).on("click", ".nav-toggle", function () {
- t1.reversed(!t1.reversed());
- });
- $(document).on("click", ".nav-item a", function () {
- t1.reversed(!t1.reversed());
- });