Kategorie: wordpress

Kod html + css + jquery przygotowany do wordpressa do wyświetlania listy logotypów w karuzeli, na przykład do sekcji „nasi klienci”.

Kod korzysta z domyślnej biblioteki jquery zastosowanej w najnowszym silniku WordPress

//html

<div class="logo-carousel">
    <button class="carousel-arrow prev">‹</button>

    <div class="carousel-viewport">
        <div class="carousel-track">
            <!-- 10 logotypów -->
            <div class="logo"><img src="/wp-content/uploads/2025/12/arko-pasze.webp" alt=""></div>
<div class="logo"><img src="wp-content/uploads/2025/12/gospodarstwo-rolne-karol-podgorny.webp" alt=""></div>
            <div class="logo"><img src="/wp-content/uploads/2025/12/cofactor.webp" alt=""></div>
            <div class="logo"><img src="/wp-content/uploads/2025/12/gospodarstwo-rolne-szymanski.webp" alt=""></div>
            <div class="logo"><img src="/wp-content/uploads/2025/12/amrum.webp" alt=""></div>
            <div class="logo"><img src="/wp-content/uploads/2025/12/arko.webp" alt=""></div>
            <div class="logo"><img src="/wp-content/uploads/2025/12/floreco.webp" alt=""></div>
            
            <div class="logo"><img src="/wp-content/uploads/2025/12/gospodarstwo-rolne-piotr-podgorny.webp" alt=""></div>
            <div class="logo"><img src="/wp-content/uploads/2025/12/gospodarstwo-rolne-szymanski-stanislaw.webp" alt=""></div>

         
        </div>
    </div>

    <button class="carousel-arrow next">›</button>
</div>

//js

<script>
jQuery(function ($) {

    const $carousel = $('.logo-carousel');
    const $track = $carousel.find('.carousel-track');
    const $logos = $carousel.find('.logo');

    let index = 0;
    let visible = getVisible();
    let step = visible;

    function getVisible() {
        return window.innerWidth <= 768 ? 2 : 5;
    }

    function updateCarousel() {
        const logoWidth = $logos.outerWidth(true);
        const moveX = index * logoWidth;
        $track.css('transform', 'translateX(' + (-moveX) + 'px)');
    }

    $('.next').on('click', function () {
        const maxIndex = $logos.length - visible;

        if (index < maxIndex) {
            index += step;
            if (index > maxIndex) index = maxIndex;
            updateCarousel();
        }
    });

    $('.prev').on('click', function () {
        if (index > 0) {
            index -= step;
            if (index < 0) index = 0;
            updateCarousel();
        }
    });

    /* SWIPE */
    let startX = 0;

    $track.on('touchstart', function (e) {
        startX = e.originalEvent.touches[0].clientX;
    });

    $track.on('touchend', function (e) {
        const endX = e.originalEvent.changedTouches[0].clientX;
        if (startX - endX > 50) $('.next').click();
        if (endX - startX > 50) $('.prev').click();
    });

    $(window).on('resize', function () {
        visible = getVisible();
        step = visible;
        index = 0;
        updateCarousel();
    });

});
</script>

//css

.logo-carousel {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.carousel-viewport {
    overflow: hidden;
    width: 100%;
}

.carousel-track {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    transition: transform 0.4s ease;
    will-change: transform;
}

.carousel-track  .logo {
    flex: 0 0 20%;
    max-width: 20%;
    padding: 10px;
    box-sizing: border-box;
    text-align: center;
}

.carousel-track  .logo img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
}
.carousel-track .logo:after{
	background:none;
	}

/* MOBILE */
@media (max-width: 768px) {
    .carousel-track  .logo {
        flex: 0 0 50%;
        max-width: 50%;
    }

    /* opcjonalnie – mniejsze strzałki */
    .carousel-arrow {
        font-size: 30px;
    }
}

.carousel-arrow {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 40px;
    padding: 10px;
    line-height: 1;
	color:#000000;
}
.carousel-arrow:hover {color:#000000;
}

//bigclick karuzela logo - do pliku finctions.php
function logo_carousel_scripts() {
    wp_enqueue_script('jquery');
    wp_enqueue_script(
        'logo-carousel',
        get_template_directory_uri() . '/js/carousel.js',
        array('jquery'),
        null,
        true
    );
}
add_action('wp_enqueue_scripts', 'logo_carousel_scripts');

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Cenimy państwa prywatność
Ustawienia ciastek
Do poprawnego działania naszej strony niezbędne są niektóre pliki cookies. Zachęcamy również do wyrażenia zgody na użycie plików cookie narzędzi analitycznych. Dzięki nim możemy nieustannie ulepszać stronę. Więcej informacji znajdą państwo w Polityce Prywatności.
Dostosuj Tylko wymagane Akceptuj wszystkie
Ustawienia ciastek
Dostosuj ustawienia
„Niezbędne” pliki cookie są wymagane dla działania strony. Zgoda na pozostałe kategorie, pomoże nam ulepszać działanie serwisu. Firmy trzecie, np.: Google, również zapisują pliki cookie. Więcej informacji: użycie danych oraz prywatność. Pliki cookie Google dla zalogowanych użytkowników.
Niezbędne pliki cookies są konieczne do prawidłowego działania witryny.
Używamy plików cookie Google Analytics. Te pliki cookie będą przechowywane w przeglądarce tylko za państwa uprzednią zgodą.
Reklamowe pliki cookies służą m.in. do analizowania efektywności działań reklamowych i śledzenia konwersji.
Umożliwia wysyłanie do Google danych użytkownika związanych z reklamami

Brak plików cookies.

Umożliwia wyświetlanie reklam spersonalizowanych

Brak plików cookies.

Zapisz ustawienia Akceptuj wszystkie
Ustawienia ciastek