In this tutorial you are going to learn how to cross fade background images on hover of any element in Elementor.
This is quite a flexible method, that will allow you to smoothly change the background image on hover, while keeping awesome page performance as the large images are loaded only after there is an interaction from the user.
It can even be combined with custom loops and the Posts element from Elementor Pro, or the Listing Grid element from JetEngine, with great results.
See the demo here:
Features:
- The images are lazy loaded for optimal performance
- Smooth cross fade animation
- Works with custom loops
- Works for multiple such designs on one page
- Containers ready
- Also works with the old sections and columns
- Demo is included as a template file
- Works with Elementor Free (Elementor Pro is required for the template files though, as it uses the CTA element)
Note that this is a desktop only design, as there is no hover on mobile devices.
Important note: You will need the feature "Container" to be enabled under Elementor > Experiments > Container. This uses the new Container element.
Let's get started!
First, let's setup your layout properly
This is a premium tutorial. Purchase access to unlock the full tutorial and download the template.
9 Responses
Thank you so much! I've implemented that tutorial and it works great. I am loving your website and tutorials, they are so helpful.
The only thing I've noticed is that when it is transitioning from one image to the other, in the middle of the hover you can see the original image so it transitions through 3 images.
The one I was previously hovered on - the original background image - the one I am now hovered on.
Is there a workaround for this as my client doesn't like that the middle image shows?
Here, try this. It's not perfect, however it does prevent showing 3 images at the same time. The faster you make the transition, the better it will look and work too.
1. Change the timing here to 0.3s or less, and add another 0.3s at the end. That one corresponds to the transition delay.
2. Add this line here, give it the same timing as the other line, but without any animation delay.
That works perfectly! Thank you so much for your help 🙂
Hi, it's not working on my page although I followed your steps exactly including CTAs. I have no idea why 🙁
Hey Mareike!
Could you please share your URL with me? I will have a look.
Hi there - I've double checked my application of the instructions many times but this is not working. Happy to share the URL privately if you provide me an email address.
Through email, luxxy6 me and were able to fix the issue and make it all working as it should!
Hi - I am currently working on a localhost instance - I can not get the images to display on hover, either using your template or following the instructions from scratch - the rest seems to work fine.
Hey Dave!
Sorry I would really need a link to be able to help, otherwise I have no idea what might be the specific issue here.