• The plugin is amazing, it would be great if an option to create custom pagination/thumbnails can be added to the plugin, so that we can create custom thumbnails and insert their id/class inside the slide everything widget and it connects the custom thumbnails to the slider(I mean creating custom thumbnails not just a small image but full containers with content in them), also a progress bar that represents the slide progress.

Viewing 2 replies - 1 through 2 (of 2 total)
  • Plugin Author Michael

    (@migaweb)

    Hi, I’m not sure I understand the thumbnail part 🙂 Can you show an example on how it should look like? E.g. look at the Swiper examples https://swiperjs.com/demos or their properties https://swiperjs.com/swiper-api. Those are that parts that this plugin is using (it just puts them in the correct DOM structure and runs the swiper script 🙂 ). The plugin shouldn’t generate custom thumbnails

    Progress bar: https://swiperjs.com/demos#pagination-progress should be something that can be implemented (if available in the old version of Elementor). And I’ll check that I expose the Swiper so you can do all the part from my “Swiper in Elementor” tutorial. There is a section how you can connect two sliders, in case that is what you mean by your thumbnails (small images drive the other slider).

    Thread Starter ashrafkhanak15

    (@ashrafkhanak15)

    I actually managed to do it with some custom code, and the plugin. https://ibb.co/yBpSS3Cf basically the small images/boxes that can be used as thumbnails for the slides, i was thinking that if we can get the feature to create the thumbnails manually with elementor(so that we can customise them however we like) and then link/connect them to the main slider so that they can control the slides. The code that worked for me:

    <script>
    jQuery(document).ready(function ($) {
    setTimeout(function () {
    // 1. Grab the main slider
    const sliderContainer = document.querySelector('[slider main container class/ID]');
    if (!sliderContainer) return;

    // Grab the Swiper instance created by Slide Everything
    const mainSwiper = sliderContainer.swiper;
    if (!mainSwiper) {
    console.error("Swiper instance not found!");
    return;
    }

    // 2. Grab all Elementor-built thumbnails
    const thumbs = document.querySelectorAll('[common class of all the thumbnail containers]'); // all thumbnails should have this class

    // 3. Click thumbnails to change the main slider
    thumbs.forEach((thumb, i) => {
    // Optional: set data-slide if you haven't set it manually
    thumb.setAttribute('data-slide', i);

    thumb.addEventListener('click', () => {
    mainSwiper.slideToLoop(i); // <-- updated to slideToLoop
    updateActive(i);
    });
    });

    // 4. Function to update active thumbnail
    function updateActive(activeIndex) {
    thumbs.forEach((thumb, i) => {
    thumb.classList.toggle('active', i === activeIndex);
    });
    }

    // 5. Sync thumbnails when slider changes
    mainSwiper.on('slideChange', () => {
    updateActive(mainSwiper.realIndex);
    });

    // 6. Initialize first active thumbnail
    updateActive(mainSwiper.realIndex || 0);

    }, 500); // slight delay for Slide Everything init
    });
    </script>
Viewing 2 replies - 1 through 2 (of 2 total)

You must be logged in to reply to this review.