Mind-Blowing Elementor Trick – Animated Images Entrance Effects Never Before!

Wide transparent graphic asset of a torn paper edge rendered in white, appearing blank against a white background
Thumbnail with a man in a dark jacket on the left over a purple glow with the partly hidden heading Management: Where Talent Meets Opportunity behind him, and a large slanted orange side menu panel listing Home, About Us, Services, Our Work, Careers and Contact Us with Facebook, YouTube, Instagram and LinkedIn links, a yellow CLOSE button at the top right, a magenta circle with a white list icon at the lower left, and model portrait cards visible behind the panel

The Creative Overlay Menu in Elementor — A Full-Screen Menu That Shows Off

Reboot Addons' Creative Overlay Menu: a full-screen Elementor menu with kicker, headline, CTA and eleven animated surface options. No custom ...

Read More
A web-design studio desk with a laptop and monitors showing website layouts and design tools — the kind of monthly managed-build behind the R749 to R1999 plans.

R749 vs R999 vs R1999 — What Each Website Package Actually Gets You

R749, R999, R1499 or R1999 a month — what each Reboot Websites package actually builds, and why the gap between ...

Read More
Tall parallax website demo screenshot for Apple Watch Ultra showing a hero with the heading Apple Watch Ultra: Your Companion for Every Adventure over a close up of the watch face on a wrist, a dark section with the heading A REVOLUTIONARY BLEND OF CUTTING-EDGE TECHNOLOGY AND RUGGED DURABILITY FOR THE MODERN EXPLORER beside a floating watch band image, a section of layered watch photos with translucent highlight text, and a flat lay of the watch with an orange band beside a succulent and a Bullet planner notebook, all inside the WordPress admin bar

Advanced Text FX in Elementor — 58 Text Effects in One Widget

Advanced Text FX gives you 58 text-in effects in one Elementor widget — scramble, typewriter, glitch, neon, and a whole ...

Read More
Thumbnail with a man in a dark shirt on the right, a fan of eight portrait cards of women behind him, large distressed red and orange CARD EFFECT lettering across the bottom, a magenta circle with a white list icon at the lower right, and a blurred purple radial background

Elementor Card Widgets without Custom JS — The Free Tier

Seven content widgets plus all six form stylers that build card effects, carousels, and styled forms without writing JS. Widget ...

Read More
Showing Slide 1 of 5
Thumbnail with a man in a dark shirt on the left, and four panels each showing the same photo of an orange and black motorcyclist riding past brick buildings, masked with a lightning bolt, a circular swirl, a dripping paint shape and a diagonal torn edge, on a blue to pink gradient background

So if you follow along in the video, I refer to this blog post for you to enter code at certain points, so below is everything you will need!

Some Mask Examples I Used In The Tutorial

Website to free videos to make into gifs

Online Gif Creator

The Following are the css class names I used in the tutorial:

				
					custom-viewport-mask-image
				
			

The Following code goes into the Slider Container (reboot-slider):

				
					<script>
// to make gifs from video - https://ezgif.com/
// to get free videos to convert to gifs - https://www.vecteezy.com/

(function($) {
    $(document).ready(function() {
        const $maskImages = $('.custom-viewport-mask-image');
        
        
        
        
        // Initial setup to make all images invisible
        $maskImages.css({
            'opacity': '0',
            'transition': 'opacity 0.3s ease'
        });
        
        const observer = new IntersectionObserver((entries) => {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    const $target = $(entry.target);
                    const $elementorElement = $target.find('.elementor-widget-container');
                    // Make this specific image visible
                    $target.css('opacity', '1');
                    
                                   const backgroundImage = $elementorElement.css('background-image');
                    
                                  if (backgroundImage && backgroundImage !== 'none') {
                        let cleanUrl = backgroundImage.replace(/^url\(["']?/, '').replace(/["']?\)$/, '');
                 cleanUrl = cleanUrl + `?t=${Date.now()}`;
                        
                
                    $target.css({
                        'mask-image': `url(${cleanUrl})`,
                        'mask-size': 'cover',
                        'mask-repeat': 'no-repeat',
                        'mask-position': 'center',
                        
                    });
                    
                    
                    }
                  
                    observer.unobserve(entry.target);
                }
            });
        }, {
            threshold: 0.2
        });

        // Observe each image individually
        $maskImages.each(function() {
            observer.observe(this);
        });
    });
})(jQuery);
</script>