Animated menu-icon on toggling.
<div id="menu-toggle-icon">
<div id="row-0"></div>
<div id="row-1"></div>
<div id="row-2"></div>
</div>
| #menu-toggle-icon | |
| each _, i in Array(3) | |
| div(id='row-'+i) |
| $( "#menu-toggle-icon" ).addClass("open-lines"); | |
| $( "#menu-toggle-icon" ).click(function() { | |
| $( "#menu-toggle-icon" ).toggleClass("close-lines"); | |
| $( "#menu-toggle-icon" ).toggleClass("open-lines"); | |
| }); |
| <script src="https://code.jquery.com/jquery-2.2.4.min.js"></script> |
| $line-color: #fafafa | |
| $menu-color: green | |
| #menu-toggle-icon | |
| background-color: rgba($menu-color, .5) | |
| padding: 15px | |
| padding-bottom: 10px | |
| width: 20px | |
| height: 20px | |
| cursor: pointer | |
| position: fixed | |
| top: 0 | |
| right: 0 | |
| -webkit-tap-highlight-color: transparent | |
| div | |
| background-color: $line-color | |
| width: 100% | |
| height: 1px | |
| margin-top: 33.333% | |
| animation-duration: 500ms | |
| animation-timing-function: ease-in-out | |
| animation-fill-mode: forwards | |
| &.open-lines | |
| #row-1 | |
| opacity: 1 | |
| #row-0 | |
| animation-name: row-0-open | |
| #row-2 | |
| animation-name: row-2-open | |
| &.close-lines | |
| #row-1 | |
| animation-name: row-1-close | |
| #row-0 | |
| animation-name: row-0-close | |
| #row-2 | |
| animation-name: row-2-close | |
| /* keyframes open */ | |
| @keyframes row-0-open | |
| 0% | |
| opacity: 0 | |
| top: 66.666% | |
| margin-top: 66.666% | |
| 50%, 100% | |
| opacity: 1 | |
| top: 0 | |
| margin-top: 0 | |
| @keyframes row-2-open | |
| 0% | |
| opacity: 0 | |
| top: 100% | |
| margin-top: 100% | |
| 50%, 100% | |
| top: 33.333% | |
| margin-top: 33.333% | |
| 70%, 100% | |
| opacity: 1 | |
| /* keyframes close */ | |
| @keyframes row-1-close | |
| 0% | |
| opacity: 1 | |
| top: 0% | |
| margin-top: 0% | |
| 50%, 100% | |
| top: 33.333% | |
| margin-top: 33.333% | |
| opacity: 0 | |
| @keyframes row-0-close | |
| 0% | |
| top: 0 | |
| margin-top: 0 | |
| 70%, 100% | |
| top: 33.333% | |
| margin-top: 33.333% | |
| 100% | |
| transform: rotate(45deg) | |
| @keyframes row-2-close | |
| 0% | |
| top: 0% | |
| margin-top: 0% | |
| 70%, 100% | |
| top: calc(-33.333% - 2px) | |
| margin-top: calc(-33.333% - 2px) | |
| 100% | |
| transform: rotate(-45deg) |