Want to get this as ready made template with just 1 CLICK INSTALL?
CSS code snippet for Hamburger Menu Icon (Inner Section):
selector{ width: 40px; cursor: pointer; }
CSS code snippet for Close icon (Inner Section):
selector{ width: 50px; cursor: pointer; position: absolute; top: 50px; right: 40px; opacity: 0; transition: all 0.3s ease-in-out 1.3s; }
All JavaScript code snippets:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> var $ = jQuery leavePage = false var placeImages = function(){ $('.f-menu .elementor-icon-list-item').each(function(i){ var offset = 20, x = $(this).find('.elementor-icon-list-text').width() + offset, y = $(this).offset().top - $('.f-menu .elementor-icon-list-item').eq(0).offset().top console.log($(window).width()) if( $(window).width() < 768 ) { x = 0 } $('.menu-image .elementor-gallery-item').eq(i).css('transform', 'translate(' + x + 'px,' + y + 'px)') $('.menu-image').css('top', $('.f-menu .elementor-icon-list-item').eq(0).offset().top - $('.f-menu-section').offset().top) }) } $(document).ready(function(){ placeImages() var menuStart = 0.8; menuDiff = 0.1; $('.f-menu-section .elementor-icon-list-item').each(function(){ $(this).css('transition-delay', menuStart + 's') menuStart += menuDiff }) var menuHovered = false $('.f-menu .elementor-icon-list-item').hover(function(){ var i = $(this).index() $('.menu-image .elementor-gallery-item').eq(i).addClass('active') $('.menu-image').css('z-index', 1) menuHovered = true }, function(){ $('.menu-image .elementor-gallery-item').removeClass('active') menuHovered = false setTimeout(function(){ if(menuHovered) return $('.menu-image').css('z-index', -1) },300) }) $('.f-open').on('click', function(){ $('.f-menu-section').addClass('active') }) $('.f-close').on('click', function(){ $('.f-menu-section').removeClass('active') }) $('.f-menu-section .elementor-icon-list-item a').on('click', function(){ setTimeout(function(){ if(leavePage) return $('.f-menu-section').addClass('faded') setTimeout(function(){ $('.f-menu-section').removeClass('active') },200) setTimeout(function(){ $('.f-menu-section').removeClass('faded') },1000+200) },50) }) }) window.onbeforeunload = () => { leavePage = true } $(window).on('load resize', placeImages) </script>
CSS code snippet for Menu (2nd Section):
selector{ position: fixed; top: 0; width: 100vw; transform: translateX(-100%); transition: all 1s ease-in-out !important; height: 100vh; overflow-y: auto; } selector.active{ transform: none; } selector.faded{ opacity: 0; transition: all 1s ease-in-out, opacity 0.2s ease-in-out !important; } selector.active .f-menu .elementor-icon-list-item{ opacity: 1; transform: none; } selector.active .f-close{ opacity: 1 !important; } selector.active .f-social .elementor-icon-list-item{ opacity: 1; } selector .elementor-container, selector .elementor-column, selector .elementor-widget-wrap{ position: static !important; } selector.active .menu-image{ opacity: 1; }
CSS code snippet for Navigation Menu (Icon List Widget):
selector{ --stroke-color: #fff; --hover-angle: -7deg; } selector .elementor-icon-list-item .elementor-icon-list-text{ -webkit-text-stroke-width: 1px; -webkit-text-stroke-color: var(--stroke-color); transition: all 0.2s ease-in-out, transform 0.1s ease-in-out; } selector .elementor-icon-list-item .elementor-icon-list-text:hover{ color: transparent; transform: skew(var(--hover-angle)); } selector .elementor-icon-list-item{ opacity: 0; transform: translateY(-10px); transition: all 0.5s ease-in-out; } selector a:focus { outline: none; }
CSS code snippet for Social Menu (Icon List Widget):
selector .elementor-icon-list-item{ opacity: 0; transition: all 0.5s ease-in-out; }
CSS code snippet for Menu Hover Images (Gallery Widget):
selector{ --size: 280px; } selector{ opacity: 0; transition: all 0.3s ease-in-out; } selector .elementor-gallery-item{ position: absolute; top: 0; left: 0; width: var(--size); } selector .elementor-gallery-item .e-gallery-image, selector .elementor-gallery-item .elementor-gallery-item__overlay{ opacity: 0; transform: translateY(-50px) scaleX(0.5) scaleY(0.8); transition: all 0.3s ease-in-out; transform-origin: top left; } selector .elementor-gallery-item.active .e-gallery-image, selector .elementor-gallery-item.active .elementor-gallery-item__overlay{ opacity: 1; transform: none; }