导航菜单

移动手机APP打开菜单过渡动画特效

阿里云


这是一组移动手机(Mobile)APP 打开菜单时的过渡动画特效。这组过渡动画共有 15 种效果,分别使用 CSS3 animation 动画来制作,这些动画均由线条和文字组成,效果非常炫酷。这 15 种移动手机 APP 打开菜单动画效果所需的 CSS 动画样式都写在各自的页面中,同时使用少量的 JavaScript 代码来为元素切换相应的 class 类。

HTML 结构

所有的例子都使用相同的 HTML 结构:其中,.mobile-inner-header-icon 是汉堡包图标,.mobile-inner-header-icon-out class 类用于制作图标的动画效果。两个空的<span>元素用于制作汉堡包图标的线条。

也想出现在这里?联系我们
创客主机
  1. <div class="mobile">
  2.       <div class="mobile-inner">
  3.           <div class="mobile-inner-header">
  4.             <div class="mobile-inner-header-icon mobile-inner-header-icon-out">
  5.               <span></span><span></span>
  6.             </div>
  7.           </div>
  8.           <div class="mobile-inner-nav">
  9.             <a href="#">Home</a>
  10.             <a href="#">Services</a>
  11.             <a href="#">Portfolio</a>
  12.             <a href="#">Blog</a>
  13.             <a href="#">About</a>
  14.             <a href="#">Contact</a>
  15.           </div>
  16.           <img src="_assets/photo1.jpg"/>
  17.           <p>......</p> 
  18.           <p>......</p>
  19.         </div>
  20.       </div>
  21.   </div>
  22. </div>

CSS 样式

以第一种动画的 CSS 样式为例子,在第一种 APP 导航菜单特效中,首先为导航项添加一些通用的样式:

  1. .mobile-inner-nav a{
  2.   display: inline-block;
  3.   line-height: 50px;
  4.   text-decoration: none;
  5.   width: 80%;
  6.   margin-left: 10%;
  7.   color: #FFFFFF;
  8.   border-bottom: solid 1px rgba(255,255,255,0.3);
  9.   -webkit-transition: all 0.5s;
  10.   -moz-transition: all 0.5s;
  11.   -o-transition: all 0.5s;
  12.   transition: all 0.5s;
  13.   font-weight:300;
  14. }
  15. .mobile-inner-nav a:hover{
  16.   color: rgba(255,255,255,0.4);
  17.   border-bottom: solid 1px rgba(255,255,255,0.2);
  18. }

变为各个导航项设置 animation 动画:动画的持续时间 animation-duration 为 0.5 秒,填充模式 animation-fill-mode 为 both,动画名称为 returnToNormal。

  1. .mobile-inner-nav a{
  2.     -webkit-animation-duration: 0.5s;
  3.     animation-duration: 0.5s;
  4.     -webkit-animation-fill-mode: both;
  5.     animation-fill-mode: both;
  6.     -webkit-animation-name: returnToNormal;
  7.     animation-name: returnToNormal;
  8.   }

returnToNormal 帧动画第 0 帧时元素的透明度设置为 0,通过 translate3d()函数将元素在 Y 轴方向上压缩为负值。然后在第 100 帧的时候,元素的透明度恢复为 1,transform 属性设置为 none,也就是恢复 translate3d()为默认值(0,0,0),这样,整个动画的效果就是菜单项由上往下依次展开。

  1. @-webkit-keyframes returnToNormal {
  2.   0% {
  3.     opacity: 0;
  4.     -webkit-transform: translate3d(0, -100%, 0);
  5.             transform: translate3d(0, -100%, 0);
  6.   }
  7.  
  8.   100% {
  9.     opacity: 1;
  10.     -webkit-transform: none;
  11.             transform: none;
  12.   }
  13. }
  14.  
  15. @keyframes returnToNormal {
  16.   0% {
  17.     opacity: 0;
  18.     -webkit-transform: translate3d(0, -100%, 0);
  19.             transform: translate3d(0, -100%, 0);
  20.   }
  21.  
  22.   100% {
  23.     opacity: 1;
  24.     -webkit-transform: none;
  25.             transform: none;
  26.   }
  27. }

JavaScript

第一种动画过渡效果的实现需要一些 JavaScript 代码的辅助。下面的第一段代码用于在点击汉堡包按钮之后,使菜单面板滑动显示。第二段代码用于为各个菜单项设置动画的延迟时间。

  1. $(".mobile-inner-header-icon").click(function(){
  2.   $(this).toggleClass("mobile-inner-header-icon-click mobile-inner-header-icon-out");
  3.   $(".mobile-inner-nav").slideToggle(250);
  4. });
  5.  
  6. $(".mobile-inner-nav a").each(function( index ) {
  7.   $( this ).css({'animation-delay': (index/10)+'s'});
  8. });

其它效果的实现请参考下载文件。

移动手机 APP 打开菜单过渡动画特效

已有 382 人购买
  • mmsk
查看演示升级 VIP立刻购买

演示地址 下载地址
收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!