Want to get this as ready made template with just 1 CLICK INSTALL?
JavaScript code snippet:
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> var $ = jQuery $(document).ready(function(){ $('.rpb-gallery .elementor-widget-button').remove() $('.rpb-preview-button .elementor-widget-button').clone().appendTo('.rpb-gallery .elementor-gallery-item__content') $('.rpb-gallery .elementor-gallery-item__description').each(function(){ var link = $(this).text().trim() $(this).closest('a').attr('href', link) $(this).remove() }) $('.rpb-gallery .e-gallery-item, .rpb-gallery .elementor-widget-button a').on('click', function(e){ e.preventDefault() }) var link $('.rpb-gallery .e-gallery-item').on('mouseenter', function(e){ e.preventDefault() link = $(this).attr('href') $('.rpb-preview iframe').remove() $('.rpb-site-link a').attr('href', link) if( !link || link == '#' ) link = '' $('.rpb-preview').append('<iframe src="' + link + '"></iframe>') }) $('.rpb-gallery .e-gallery-item').on('click', function(e){ if( !link || link == '#' ) return if($(window).width() > 767){ $('.rpb-popup').addClass('show') }else{ if($(e.target).hasClass('elementor-widget-button') || $(e.target).closest('.elementor-widget-button').length ){ $('.rpb-popup').addClass('show') } } }) function hidePopup(){ var index = 0 $('.rpb-popup').removeClass('show') $('.rpb-popup').removeClass('desktop tablet mobile') $('.rpb-buttons .elementor-widget-button').removeClass('active') if( $(window).width() < 1025 ) { index = 1 } $('.rpb-buttons .elementor-widget-button').eq(index).addClass('active') } $('.rpb-popup').on('click', function(e){ if( $(e.target).hasClass('rpb-popup') ){ hidePopup() } }) $('.rpb-back a').on('click', hidePopup) $('.rpb-buttons .elementor-widget-button').on('click', function(){ var index = $(this).index(), popupClass = 'desktop' if(index == 0) { popupClass = 'desktop' } if(index == 1) { popupClass = 'tablet' } if(index == 2) { popupClass = 'mobile' } $('.rpb-popup').removeClass('desktop tablet mobile') $('.rpb-popup').addClass(popupClass) $('.rpb-buttons .elementor-widget-button').removeClass('active') $(this).addClass('active') }) }) $(window).on('load resize', function(){ var index = 0 if( $(window).width() < 1025 ) { index = 1 } $('.rpb-buttons .elementor-widget-button').removeClass('active') $('.rpb-buttons .elementor-widget-button').eq(index).addClass('active') }) $(window).on('load', function(){ setTimeout(function(){ $('.rpb-gallery').addClass('show') },500) }) </script>
CSS code snippet on Gallery Widget:
selector{ --horizontal-gap: 30px; --caption-background: #fff } selector .e-gallery-image{ background-position: top; } selector .elementor-gallery-item__title{ background: var(--caption-background); width: auto; padding: 8px 15px; border-radius: 5px; box-shadow: 0 0 20px 0 rgba(0,0,0,0.1); clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0% 100%); transition: all 0.3s ease-in-out; opacity: 0; transform: translateY(10px); } selector .e-gallery-item:hover .elementor-gallery-item__title{ clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); opacity: 1; transform: translateY(0); } selector .elementor-widget-button{ clip-path: polygon(0 100%, 100% 100%, 100% 100%, 0% 100%); transition: all 0.3s ease-in-out; opacity: 0; transform: translateY(10px); } selector .e-gallery-item:hover .elementor-widget-button{ clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); opacity: 1; transform: translateY(0); } selector .e-gallery-grid { --hgap: var(--horizontal-gap) !important; } selector a:focus{ outline: none; } selector:not(.show) .elementor-gallery-item{ border-color: transparent; } body.elementor-editor-preview selector:not(.show) .elementor-gallery-item, body.elementor-editor-active selector:not(.show) .elementor-gallery-item{ border-color: var(--image-border-color); }
CSS code snippet on Popup Container:
selector{ --tablet-width: 768px; --mobile-width: 420px; --active-button-color: #5453FD; --tablet-preview-bar-padding: 35px; --bottom-line-color: #0302B5; } selector{ visibility: hidden; opacity: 0; } selector.show{ visibility: visible; opacity: 1; } selector iframe{ width: 100%; height: 100%; } selector .elementor-widget-button.active a{ background: var(--active-button-color); } selector.tablet > .e-container, selector.tablet > .e-con{ width: var(--tablet-width); } selector.mobile > .e-container, selector.mobile > .e-con{ width: var(--mobile-width); } selector.tablet .rpb-bar{ --padding-left: var(--tablet-preview-bar-padding); --padding-right: var(--tablet-preview-bar-padding); } selector.mobile .rpb-back, selector.mobile .rpb-site-link{ opacity: 0; pointer-events: none; width: 0; } selector a:focus{ outline: none; } selector .rpb-preview{ height: calc(100vh - 135px); } selector .rpb-preview:before{ content: ""; position: absolute; top: -2px; height: 3px; width: 100%; background: var(--bottom-line-color); left: 0; } @media (min-width: 1025px) and (max-width: 1130px){ selector{ --padding-left: 0; --padding-right: 0; --padding-top: 0; --x: 50px; --y: 85px; } selector > .e-container, selector > .e-con{ max-width: 100vw; width: 100vw; transform: scale(0.9); transform-origin: bottom; position: absolute; bottom: 0; } selector .rpb-preview{ height: calc( (10/9 * (100vh - var(--x))) - var(--y)); } } @media (min-width: 768px) and (max-width: 880px){ selector{ --padding-left: 0; --padding-right: 0; --padding-top: 0; --x: 50px; --y: 85px; } selector > .e-container, selector > .e-con{ max-width: 100vw; width: 100vw; transform: scale(0.9); transform-origin: bottom; position: absolute; bottom: 0; } selector .rpb-preview{ height: calc( (10/9 * (100vh - var(--x))) - var(--y)); } } @media (max-width: 1024px){ selector{ --tablet-width: 100%; } } @media (max-width: 767px){ selector{ --mobile-width: 100%; } selector .rpb-preview{ height: calc(100vh - 115px); } } @media (max-width: 450px){ selector{ --padding-left: 0; --padding-right: 0; --padding-top: 0; --x: 40px; --y: 85px; } selector > .e-container, selector > .e-con{ max-width: 100vw; width: 100vw; transform: scale(0.9); transform-origin: bottom; position: absolute; bottom: 0; } selector .rpb-preview{ height: calc( (10/9 * (100vh - var(--x))) - var(--y)); } }