导航菜单

超酷汉堡包菜单按钮变形动画

阿里云


这是一款使用 CSS3 和少量 jQuery 代码来完成的汉堡包菜单按钮变形动画特效。该特效使用 CSS3 transition 和 transform 来完成变形动画效果,使用 jQuery 来触发按钮点击事件。

HTML 结构

该汉堡包按钮的 HTML 结构非常简单,使用嵌套<runcode>div</runcode>的 HTML 结构。

也想出现在这里?联系我们
创客主机
  1. <div class="burgers">
  2.   <div class="burger1 menu">
  3.       <div class="icon"></div>
  4.   </div>
  5.  
  6.   <div class="burger2 menu">
  7.       <div class="icon"></div>
  8.   </div>
  9.  
  10.   <div class="burger3 menu">
  11.       <div class="icon"></div>
  12.   </div>
  13. </div>

CSS 样式

作为汉堡包菜单按钮的包裹容器 div.menu 元素设置了固定的宽度和高度,定位方式为相对定位,显示方式 display 为内联块级元素。并设置 1 秒钟的过渡动画时间。

  1. .menu {
  2.   width: 80px;
  3.   height: 80px;
  4.   position: relative;
  5.   transition-duration: 1s;
  6.   display: inline-block;
  7.   margin: 40px;
  8.   cursor: pointer;
  9. }

.icon 元素是汉堡包菜单按钮,它的:before 和:after 伪元素分别用于制作上下两条横线。

  1. .icon {
  2.   height: 14px;
  3.   width: 80px;
  4.   top: 30px;
  5.   background-color: #F8FFE9;
  6.   border-radius: 20px;
  7.   position: absolute;
  8.   transition-duration: 0.5s;
  9. }
  10. .icon:before {
  11.   left: 0;
  12.   position: absolute;
  13.   top: -25px;
  14.   height: 14px;
  15.   width: 80px;
  16.   background-color: #F8FFE9;
  17.   content: "";
  18.   border-radius: 20px;
  19.   transition-duration: 0.5s;
  20. }
  21. .icon:after {
  22.   left: 0;
  23.   position: absolute;
  24.   top: 25px;
  25.   height: 14px;
  26.   width: 80px;
  27.   background-color: #F8FFE9;
  28.   content: "";
  29.   border-radius: 20px;
  30.   transition-duration: 0.5s;
  31. }

当汉堡包按钮被点击的时候,容器元素被使用 jQuery 来添加.open 或 burger1-open class 类,3 种汉堡包菜单按钮此时会分别使用 transition 和 transform 来制作不同的动画。

  1. .burger2.open .icon {
  2.   transition-duration: 0.1s;
  3.   transition-delay: 0.5s;
  4.   background: transparent;
  5. }
  6.  
  7. .burger2.open .icon:before {
  8.   transition: top 0.5s, transform 0.5s 0.5s;
  9.   top: 0px;
  10.   transform: rotateZ(-45deg);
  11. }
  12.  
  13. .burger2.open .icon:after {
  14.   transition: top 0.4s, transform 0.5s 0.5s;
  15.   top: 0px;
  16.   transform: rotateZ(45deg);
  17. }
  18.  
  19. .burger3.open .icon {
  20.   background: transparent;
  21. }
  22.  
  23. .burger3.open .icon:before {
  24.   transition: transform 0.5s;
  25.   transform: rotateZ(45deg) translate(15px, 20px);
  26. }
  27.  
  28. .burger3.open .icon:after {
  29.   transition: transform 0.5s;
  30.   transform: rotateZ(-405deg) translate(15px, -20px);
  31. }

JavaScript

特效中使用 jQuery 代码来在点击按钮是切换相应的 class 类。

  1. $(document).ready(function(){
  2.     $(".burger1").click(function(){
  3.         $(".burger1").toggleClass("burger1-open");
  4.     })
  5.  
  6.     $(".burger2").click(function(){
  7.       $(".burger2").toggleClass("open");
  8.     })
  9.  
  10.     $(".burger3").click(function(){
  11.       $(".burger3").toggleClass("open");
  12.     })
  13. })

超酷汉堡包菜单按钮变形动画

已有 554 人购买
  • v59o
查看演示升级 VIP立刻购买

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

发表回复

热销模板

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

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