SVG Based Hamburger Icon Transition Effect with jQuery and Velocity.js
File Size: | 21 KB |
---|---|
Views Total: | 3214 |
Last Update: | |
Publish Date: | |
Official Website: | Go to website |
License: | MIT |
An animated SVG burger icon that uses jQuery and Velocity.js to create a hamburger icon transition effect for your navigation toggle button.
How to use it:
1. Create a SVG based burger icon.
<button class="js-toggle button"> <svg height="60" version="1.1" width="60" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60"> <g> <rect height="10" width="60" y="8" x="0" stroke-width="0" fill="#000000" rx="3" /> <rect height="10" width="60" y="25" x="0" stroke-width="0" fill="#000000" rx="3" /> <rect height="10" width="60" y="42" x="0" stroke-width="0" fill="#000000" rx="3" /> </g> </svg> </button>
2. Load jQuery library and the Velocity.js at the end of the document.
<script src="/path/to/jquery.min.js"></script> <script src="/path/to/velocity.min.js"></script>
3. The JavaScript to active the burger icon transition effect on click.
(function(window, document, $, undefined) { "use strict"; $(function() { var animOptions = { duration: 250, easing: "ease-in-out" }; var open = false; $(".js-toggle").on("click", function() { var $el = $(this); var $rects = $el.find("svg rect"); if ($el.hasClass("active")) { $rects.eq(1).velocity("stop").velocity("reverse"); $rects.eq(0).add($rects.eq(2)).velocity("stop").velocity("reverse"); } else { $rects.eq(1).velocity({ opacity: 0 }, animOptions); $rects.eq(0).velocity({ transformOrigin: [30, 25], translateY: 17, rotateZ: 45 }, animOptions); $rects.eq(2).velocity({ transformOrigin: [30, 25], translateY: -17, rotateZ: -45 }, animOptions); } $el.toggleClass("active"); }); }); })(window, document, jQuery);
4. Change the color of the burger icon.
.button svg rect { fill: #fff; }
This awesome jQuery plugin is developed by lgraubner. For more Advanced Usages, please check the demo page or visit the official website.