Skip to content
GPLWP Guides

How to add hover effects to images in Elementor

Design & Layout Time About 15 minutes 6 steps Updated 24 Oct 2026

DESIGN & LAYOUT
The short answer

Elementor’s Image widget includes built-in hover animations, transition timing and filters, so basic effects need no extra plugin. For custom zooms or a library of ready-made effects, use Elementor Custom CSS or an image-hover add-on.

The route
  1. 01Add an image widget
  2. 02Choose a built-in effect
  3. 03Create a custom zoom
  4. 04Use transform controls
  5. 05Check mobile and accessibility
  6. 06Use a ready-made effects library

What you need

  • A WordPress site with Elementor installed
  • An image added to an Elementor page
  • Elementor Pro if you want element-level Custom CSS
  • A backup or staging copy for CSS changes

Add an image widget

Open the page in the Elementor editor and drag an Image widget into the layout. Choose an image from the Media Library, set its size and alignment, and add useful alt text before styling it.

If the image should open another page, set its link now. This makes the hover effect decorative rather than the only way visitors can understand or use the image.

Choose a built-in effect

Select the image, open the Style tab, and expand Image. In the Hover state, set a transition duration and choose an effect from the Hover Animation menu. You can also adjust hover opacity and CSS filters such as blur, brightness, contrast or saturation.

This is the best manual route for simple effects such as grow, shrink, fade or a colour change. Save or update the page, then check the effect on the published page rather than relying only on the editor preview.

Create a custom zoom

For a controlled zoom, select the Image widget and open Advanced followed by Custom CSS. Elementor Pro supports this field; Elementor Free does not include the editor’s Custom CSS panel, so place equivalent CSS in your theme or site stylesheet instead.

Use this CSS on the Image widget:

selector { overflow: hidden; }
selector img { transition: transform.3s ease; }
selector:hover img { transform: scale(1.06); }

The selector keyword targets the widget wrapper, while adding img targets the image inside it. The wrapper’s overflow: hidden stops the enlarged image from spilling into nearby columns.

Use transform controls

If your Elementor version exposes Advanced > Transform, use its Normal and Hover states to set scale, rotation, offset or skew without writing the transform rule yourself. Add a duration so the change does not snap or jitter. Elementor’s transform controls apply to widgets, including image widgets, rather than sections or columns.

Keep the values restrained. A small scale increase usually looks better than a large zoom, especially in a grid where neighbouring cards must remain aligned.

Check mobile and accessibility

Hover is a pointer interaction, so phones and tablets may not show it in the same way as a desktop browser. Make sure the normal image state still looks clear, and do not hide an important label, price or call to action only until hover.

Check keyboard focus if the image is linked, confirm that captions remain readable, and test the effect at each responsive breakpoint. If the image appears cropped, review its object-fit or image-size settings before increasing the hover scale.

Use a ready-made effects library

For the fast route, install and activate Emage, then use its Elementor controls to choose an image hover effect instead of building each animation with widget settings and CSS. It provides more than 30 customisable effects, with controls for colours, animation timing and responsive presentation.

This is useful for image grids, galleries, background images or WooCommerce product visuals when the built-in Image widget options are too limited. Keep only the effects you need, because excessive animation can distract visitors and make a page feel busy.

The fast route

Let Emage do it

Adds 30+ customizable image hover animations inside Elementor, ideal when you want interactive visuals without custom CSS.

Get Emage

Sources

  1. elementor.com /help/image-widget/?utm_source=openai
  2. elementor.com /help/custom-css-in-elementor/?utm_source=openai
  3. elementor.com /help/how-to-use-selector-in-the-custom-css-tab/?utm_source=…
  4. elementor.com /help/css-transform/?utm_source=openai

Questions

Does Elementor have built-in image hover effects?
Yes, Elementor’s Image widget includes built-in hover controls. Select the image, open Style > Image, switch to the Hover state, and choose a transition duration, hover animation, opacity or CSS filter. These controls are enough for common effects such as grow, shrink, fade and colour changes, so you do not need a separate plugin for a basic result.
Can I add an image zoom effect in Elementor Free?
Yes, but not through Elementor’s element-level Custom CSS panel. Elementor Free does not include that panel, so you need to add the CSS through your theme or site stylesheet, or use a suitable add-on. Elementor Pro users can place the zoom CSS directly in the widget’s Advanced > Custom CSS field.
Why does my zoomed image spill outside its box?
The zoomed image spills outside its box because the parent wrapper is not clipping overflow. Add <code>overflow: hidden</code> to the image widget’s wrapper, then apply the scale transform to the inner <code>img</code> element. Also check the image’s fixed height, object-fit setting and column spacing, because those can make the crop look worse.
Will hover effects work on phones?
Hover effects are not reliable as the only interaction on phones because touchscreens do not provide a persistent mouse pointer. Keep the normal image state readable, and do not place essential text or controls exclusively inside a hover overlay. Test the page at mobile breakpoints and provide a link, caption or visible call to action that works without hovering.
When should I use a plugin for image hover effects?
Use a plugin when you need many pre-built effects, animated overlays, gallery support or consistent controls across several images. Manual Elementor settings are fine for a single image or a simple grow effect, while custom CSS is better for a small number of tailored designs. A dedicated add-on saves time when you would otherwise repeat CSS and layout work.