Media · Elementor

Image Accordion widget for Elementor

Panels of images that expand on hover or click. This is a gallery layout, not the FAQ Accordion widget.

Open live demo

Get King Addons

This page describes the PHP/JS for this widget — not a renamed stub. Install the free plugin from WordPress.org.

Get King Addons

What it actually does

Panels of images that expand on hover or click. This is a gallery layout, not the FAQ Accordion widget.

render() writes HTML data attributes: data-settings, data-src.

get_script_depends() enqueues: lightgallery-lightgallery.

Some inspector controls are marked Pro in PHP (eicon-pro-icon / king-addons-pro-control). Those need King Addons Pro, not Elementor Pro.

The widget script reads data attributes: data-settings.

Clicks open LightGallery; the gallery is not a separate WordPress plugin.

How to add it in Elementor

  1. Install King Addons. Install Elementor and King Addons. Get King Addons from WordPress.org.
  2. Edit with Elementor. Open a page and click Edit with Elementor.
  3. Insert the widget. Search the panel for “Image Accordion”. Typing “king” lists every King Addons widget.
  4. Set inspector controls from this widget’s PHP. Configure “Layout”, “Interaction”, “Image Size”, “Active Image By Default”. Style and Content tabs are listed on this page.
  5. Preview the published page. render() writes HTML data attributes: data-settings, data-src.

When to use it

Tip: After King Addons is active, type king in the Elementor search box to list every widget, including Image Accordion.

Inspector controls from this widget’s PHP

ControlWhat the code does
Settings — LayoutWrites CSS `flex-direction` onto the widget’s front-end markup. Options: Horizontal; Vertical (Pro).
Settings — InteractionThe chosen value is read in render() and applied on the front end. Options: Hover; Click (Pro).
Settings — Image SizeElementor image-size group (thumbnail, medium, large, full, custom).
Settings — Active Image By DefaultNumeric value used in this widget’s render/JS (default 0, min 0).
Settings — HeightWrites CSS `height` onto the widget’s front-end markup. (min 20, max 1500).
Settings — Grow (Active)Writes CSS `flex` onto the widget’s front-end markup. (min 1, max 10).
Settings — GutterWrites CSS (king-addons-image-accordion-item, margin-right, margin-bottom) onto the widget’s front-end markup. (min 0, max 100).
Settings — Border TypeOptions: Outer; Individual.
Settings — Border RadiusWrites CSS (king-addons-image-accordion-item, border-radius) onto the widget’s front-end markup.
Settings — Skew Images (Pro)Switcher inspector control (`accordion_skew`).
Settings — Grow TransitionWrites CSS `transition-duration` onto the widget’s front-end markup. (default 0.3, min 0, max 5).
accordion_items — ImageMedia Library attachment(s); render() uses the URL/ID as the image source.
accordion_items — SizeWordPress image size name passed into the thumbnail URL. Options: Cover; Contain; Auto.
accordion_items — PositionWrites CSS `background-position` onto the widget’s front-end markup. Options: Center Center; Center Left; Center Right; Top Center; Top Left; Top Right; Bottom Center; Bottom Left….
accordion_items — RepeatWrites CSS `background-repeat` onto the widget’s front-end markup. Options: Repeat; No-repeat; Repeat-x; Repeat-y.
accordion_items — TitleText inspector control (`accordion_item_title`).
accordion_items — DescriptionTextarea inspector control (`accordion_item_description`).
accordion_items — Button TextText inspector control (`element_button_text`).
accordion_items — Button URLElementor URL control (href, new tab, nofollow) applied to a front-end link.
accordion_items — Use Button URL as Image LinkSwitcher inspector control (`wrapper_link`).
Content — Accordion ItemsRepeater rows; render() loops each item to build the list or slides.
Accordion Elements — Select ElementSelect inspector control (`element_select`).
Accordion Elements — DisplayOptions: Inline; Seperate Line; Custom Width.
Accordion Elements — Element WidthWrites CSS `width` onto the widget’s front-end markup. (min 0, max 100).
Accordion Elements — Vertical AlignOptions: Top; Middle; Bottom.
Accordion Elements — Horizontal AlignWrites CSS `text-align` onto the widget’s front-end markup. Options: Left; Center; Right.
Accordion Elements — Text HTML TagThe chosen value is read in render() and applied on the front end. Options: H1; H2; H3; H4; H5; H6; div; span….
Accordion Elements — Select IconIcon rendered with Elementor Icons_Manager in this widget’s HTML.
Accordion Elements — Extra Text DisplayThe chosen value is read in render() and applied on the front end. Options: None; Before Element; After Element.
Accordion Elements — Extra TextPrinted in the widget HTML from render().
Accordion Elements — Extra Icon PositionThe chosen value is read in render() and applied on the front end. Options: None; Before Element; After Element.
Accordion Elements — Select Icon (Element Extra Icon)Icon rendered with Elementor Icons_Manager in this widget’s HTML.
Accordion Elements — Select AnimationAnimation picker; the chosen effect is applied on the front end.
Accordion Elements — Animation DurationWrites CSS `transition-duration` onto the widget’s front-end markup. (default 0.3, min 0, max 5).
Accordion Elements — Animation DelayWrites CSS (king-addons-animation-wrap, transition-delay) onto the widget’s front-end markup. (default 0, min 0, max 5).
Accordion Elements — Animation TimingSelect inspector control (`element_animation_timing`).
Accordion Elements — Animation SizeOptions: Small; Medium; Large.
Accordion Elements — Animation TransparencySwitcher inspector control (`element_animation_tr`).
Accordion Elements — Show on this DeviceSwitcher inspector control (`element_show_on`).
Elements — Accordion ElementsRepeater rows; render() loops each item to build the list or slides.
Media Overlay — Overlay WidthWrites CSS (width, top, left, bottom, right) onto the widget’s front-end markup. (min 0, max 100).
Media Overlay — Overlay HeightWrites CSS (height, top, left, bottom, right) onto the widget’s front-end markup. (min 0, max 100).
Media Overlay — Select AnimationAnimation picker; the chosen effect is applied on the front end.
Media Overlay — Animation DurationWrites CSS `transition-duration` onto the widget’s front-end markup. (default 0.3, min 0, max 5).
Media Overlay — Animation DelayWrites CSS (king-addons-animation-wrap, transition-delay) onto the widget’s front-end markup. (default 0, min 0, max 5).
Media Overlay — Animation TimingSelect inspector control (`overlay_animation_timing`).
Media Overlay — Animation SizeOptions: Small; Medium; Large.
Media Overlay — Animation TransparencySwitcher inspector control (`overlay_animation_tr`).
Image Effects — Select EffectThe chosen value is read in render() and applied on the front end. Options: None; Zoom In (Pro); Zoom Out (Pro); Grayscale In; Grayscale Out (Pro); Blur In; Blur Out (Pro); Slide.
Image Effects — Animation DurationWrites CSS `transition-duration` onto the widget’s front-end markup. (default 0.5, min 0, max 5).
Image Effects — Animation DelayWrites CSS (king-addons-image-accordion-item, transition-delay) onto the widget’s front-end markup. (default 0, min 0, max 5).
Image Effects — Animation TimingSelect inspector control (`image_effects_animation_timing`).
Image Effects — Animation SizeThe chosen value is read in render() and applied on the front end. Options: Small; Medium; Large.
Image Effects — Animation DirectionThe chosen value is read in render() and applied on the front end. Options: Top; Right; Bottom; Left.
Media Overlay — BackgroundElementor background group: classic color/image or gradient on the selector. Selector: `{{WRAPPER}} .king-addons-img-accordion-hover-bg`.
Media Overlay — Box ShadowElementor box-shadow group for the selector. Selector: `{{WRAPPER}} .king-addons-image-accordion-item`.
Media Overlay — Border RadiusWrites CSS `border-radius` onto the widget’s front-end markup.
Title — ColorWrites CSS `color` onto the widget’s front-end markup.
Title — Background ColorWrites CSS `background-color` onto the widget’s front-end markup.
Title — Border ColorWrites CSS `border-color` onto the widget’s front-end markup.
Title — TypographyElementor typography group: family, size, weight, transform, style, decoration, line-height, letter-spacing. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-title a`.
Title — Transition Duration (seconds)Writes CSS (transition-duration, king-addons-pointer-item) onto the widget’s front-end markup. (default 0.2, min 0, max 5).
Title — Border TypeWrites CSS `border-style` onto the widget’s front-end markup. Options: None; Solid; Double; Dotted; Dashed; Groove.
Title — Border WidthWrites CSS `border-width` onto the widget’s front-end markup.
Title — PaddingWrites CSS `padding` onto the widget’s front-end markup.
Title — MarginWrites CSS `margin` onto the widget’s front-end markup.
Description — ColorWrites CSS `color` onto the widget’s front-end markup.
Description — Background ColorWrites CSS `background-color` onto the widget’s front-end markup.
Description — Border ColorWrites CSS `border-color` onto the widget’s front-end markup.
Description — TypographyElementor typography group: family, size, weight, transform, style, decoration, line-height, letter-spacing. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-description`.
Description — Description WidthWrites CSS `width` onto the widget’s front-end markup. (min 10, max 100).
Description — Border TypeWrites CSS `border-style` onto the widget’s front-end markup. Options: None; Solid; Double; Dotted; Dashed; Groove.
Description — Border WidthWrites CSS `border-width` onto the widget’s front-end markup.
Description — PaddingWrites CSS `padding` onto the widget’s front-end markup.
Description — MarginWrites CSS `margin` onto the widget’s front-end markup.
Button (Normal) — BackgroundElementor background group: classic color/image or gradient on the selector. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-button .inner-block a`.
Button (Normal) — ColorWrites CSS `color` onto the widget’s front-end markup.
Button (Normal) — Border ColorWrites CSS `border-color` onto the widget’s front-end markup.
Button (Normal) — TypographyElementor typography group: family, size, weight, transform, style, decoration, line-height, letter-spacing. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-button a`.
Button (Normal) — Box ShadowElementor box-shadow group for the selector. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-button .inner-block a`.
Button (Hover) — BackgroundElementor background group: classic color/image or gradient on the selector. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-button .inner-block a.king-addons-button-no…`.
Button (Hover) — ColorWrites CSS (a, color) onto the widget’s front-end markup.
Button (Hover) — Border ColorWrites CSS (a, border-color) onto the widget’s front-end markup.
Button (Hover) — Box ShadowElementor box-shadow group for the selector. Selector: `{{WRAPPER}} .king-addons-img-accordion-item-button .inner-block :hover a`.
Button — Select AnimationAnimation picker; the chosen effect is applied on the front end.
Button — Transition Duration (ms)Writes CSS (transition-duration, a) onto the widget’s front-end markup. (default 300, min 0).
Button — Animation HeightWrites CSS `height` onto the widget’s front-end markup. (min 0, max 100).
Button — Border TypeWrites CSS `border-style` onto the widget’s front-end markup. Options: None; Solid; Double; Dotted; Dashed; Groove.
Button — Border WidthWrites CSS `border-width` onto the widget’s front-end markup.
Button — Extra Icon SpacingWrites CSS (padding-right, padding-left) onto the widget’s front-end markup. (min 0, max 25).
Button — PaddingWrites CSS `padding` onto the widget’s front-end markup.
Button — MarginWrites CSS `margin` onto the widget’s front-end markup.
Button — Border RadiusWrites CSS (border-radius, a) onto the widget’s front-end markup.
Separator — ColorWrites CSS `border-bottom-color` onto the widget’s front-end markup.
Separator — WidthWrites CSS `width` onto the widget’s front-end markup. (min 0, max 300).
Separator — HeightWrites CSS `border-bottom-width` onto the widget’s front-end markup. (min 0, max 100).
Separator — TypeWrites CSS `border-bottom-style` onto the widget’s front-end markup. Options: Solid; Double; Dotted; Dashed; Groove.
Separator — MarginWrites CSS `margin` onto the widget’s front-end markup.
Separator — Border RadiusWrites CSS `border-radius` onto the widget’s front-end markup.

Content and Style tabs from this widget’s PHP, including repeater fields and group controls (typography, background, border, shadow). Elementor’s Advanced tab is core Elementor and is not listed here.

FAQ

Which Image Accordion options need King Addons Pro?

Controls marked with the Pro icon in this widget’s PHP. King Addons Pro is a separate license from Elementor Pro.

How do I add Image Accordion in Elementor?

Install King Addons and Elementor, edit a page, search the panel for “Image Accordion”, drag it onto the canvas, then set Content and Style.

Do I need Elementor Pro?

No. King Addons runs on free Elementor. Some King Addons options (for example template-in-accordion, extra popup conditions, parts of the template catalog) need King Addons Pro — not Elementor Pro.

Related media widgets

Get King Addons

One free plugin. 80+ Elementor widgets, 650+ templates, and 4,000+ sections. Search for Image Accordion after you activate it.

Get King Addons