

All CSS code snippets on Main Section (scroll-section):
/* HIDE HEADING */
selector .hidden{
pointer-events: none;
transform: scaleY(3);
opacity: 0;
}
selector .big .hidden{
opacity: 1;
transform: scaleY(1);
transition: all 1s ease-in-out;
pointer-events: all;
display: block;
}
selector .hidden .elementor-heading-title{
width: calc(100% + 300px);
margin-left: calc(-300px/2);
}
/* IMAGE HOVER EFFECT */
selector .elementor-widget-image .elementor-widget-container{
overflow: hidden;
cursor: pointer;
}
selector .elementor-widget-image a{
display: block;
}
selector .elementor-widget-image,
selector .elementor-widget-image img{
transition: all 0.4s cubic-bezier(0.47, 0, 0.75, 0.72);
}
selector .elementor-widget-image:hover{
transform: scale(0.95);
}
selector .elementor-widget-image:hover img{
transform: scale(1.3);
}
/* ALTERNATE SCROLLING */
selector{
position: fixed;
width: 100%;
top: 0;
left: 0;
overflow: auto;
}
selector,
selector::-webkit-scrollbar{
-ms-overflow-style: none;
scrollbar-width: none;
}
selector::-webkit-scrollbar,
selector .elementor-container::-webkit-scrollbar{
display: none;
}
selector > .elementor-container{
overflow: hidden;
}
selector .scroll-up > .elementor-widget-wrap{
transition: all 0.1s linear;
}
selector .elementor-column{
opacity: 0;
transition: all 0.5s ease-in-out;
}
selector .elementor-column.visible{
opacity: 1;
}
selector .elementor-widget-html{
margin-bottom: 0;
}
.elementor-location-header{
z-index: 2;
position: relative;
}
/* ANIMATING LIGHTBOX */
selector{
--image-zoom: 1.8;
}
selector.no-scroll{
overflow: hidden;
}
selector .elementor-widget-heading:not(.hidden){
transition: all 0.5s ease-in-out;
}
selector .big .elementor-widget-heading:not(.hidden){
opacity: 0;
}
selector .elementor-column.small{
opacity: 0;
transform: scale(0.3) !important;
pointer-events: none;
}
selector .elementor-column.focus{
z-index: 1;
}
selector .elementor-widget-image{
z-index: 1;
}
selector .big .elementor-widget-image,
selector .big .elementor-widget-image:hover{
transform: scale(var(--image-zoom));
}
selector .big .elementor-widget-image:hover img{
transform: scale(1);
}
/* MOBILE RESPONSIVE */
@media (max-width: 767px){
selector > .elementor-container{
height: 100vh !important;
overflow: auto !important;
}
selector.no-scroll > .elementor-container {
overflow: hidden !important
}
selector .scroll-up,
selector .scroll-up .elementor-widget-wrap{
transform: none !important;
}
selector .big .elementor-widget-image,
selector .big .elementor-widget-image:hover{
transform: scale(1);
}
selector .hidden .elementor-heading-title{
width: 100%;
margin-left: 0;
}
body.admin-bar .scroll-section{
margin-top: 48px;
}
}
All JavaScript code snippets:
<!-- ALTERNATE SCROLLING -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
var $ = jQuery
$(document).ready(function(){
var s = $('.scroll-section'),
sUp = $('.scroll-up').children('.elementor-widget-wrap'),
sDown = $('.scroll-down').children('.elementor-widget-wrap')
function init(){
var sUpPadding = parseInt(sUp.eq(0).css('padding-bottom')),
sDownPadding = parseInt(sDown.css('padding-top')) + parseInt(sDown.css('padding-bottom')),
h = 0
$('.elementor-column').addClass('visible')
sDown.children().each(function(){
h += $(this).outerHeight(true)
})
s.children('.elementor-container').height(h+sDownPadding)
console.log(h)
$('.scroll-up').css('transform', 'translateY(' + (-1)*(h - s.height() + sUpPadding) + 'px)')
}
init()
$(window).on('load resize', init)
function scrollUp(e){
sUp.css('transform', 'translateY(' + s.scrollTop() * 2 + 'px)')
}
s.on('scroll resize', function(){
scrollUp()
setTimeout(scrollUp, 10)
setTimeout(scrollUp, 20)
setTimeout(scrollUp, 50)
setTimeout(scrollUp, 100)
setTimeout(scrollUp, 500)
})
})
</script>
<!-- ANIMATING LIGHTBOX -->
<script>
$(document).ready(function(){
var s = $('.scroll-section'),
header = $('.elementor-location-header')
$('.scroll-section img').on('click', function(e){
col = $(this).closest('.elementor-column')
var posTop = (col.offset().top * -1) + ( $(window).height() - col.height())/2,
posLeft = (col.offset().left * -1) + ( $(window).width() - col.width())/2
if( col.hasClass('big') ){ return }
col.addClass('big')
setTimeout(function(){
col.addClass('link')
},50)
col.parent().closest('.elementor-column').addClass('focus')
col.css('transform', 'translate(' + posLeft +'px,' + posTop + 'px)')
s.addClass('no-scroll')
header.fadeOut(300)
s.find('.elementor-inner-section .elementor-column').each(function(){
if( ! $(this).hasClass('big')){
$(this).addClass('small')
}
})
})
$('body').on('click', function(e){
if( ! ( $(e.target).hasClass('big') || $(e.target).closest('.big').length ) ){
s.removeClass('no-scroll')
col.css('transform', 'translate(0,0)')
$('.elementor-column').removeClass('big link focus small')
setTimeout(function(){
header.fadeIn()
}, 200)
}
})
$('.scroll-section a').on('click', function(e){
if( ! $(this).closest('.elementor-column').hasClass('link') ) {
e.preventDefault()
}
})
})
</script>
CSS code snippet for Transparent Header Background (desktop only):
@media (min-width: 1025px){
selector{
background: none !important;
}
}