Swiper - with off navigation on mobile

Описание

На разных экранах проверяем количество слайдов.

Если слайдов меньше чем задано, то делаем дестрой слайдера, скрываем стрелки и точки.

JS
Код
      var block = $('SELECTOR-BLOCK'),
    blockContent = block.find('SELECTOR-CONTENT'),
    blockList = block.find('SELECTOR-LIST'),
    blockItem = block.find('SELECTOR-SLIDE-ITEM'),
    blockArrows = block.find('.arrows'),
    blockFooter = block.find('SELECTOR_FOOTER');

function paramsSlider(slidesPerView, slidesPerGroup, loop, loopFillGroupWithBlank, dynamicBullets, freeMode, freeModeMomentum) {
    var options = {
        init: false,
        wrapperClass: 'SELECTOR-WRAPPER-INNER',
        slideClass: 'SELECTOR-SLIDE-ITEM',
        slidesPerView: slidesPerView,
        slidesPerGroup: slidesPerGroup,
        setWrapperSize: true,
        grabCursor: true,
        spaceBetween: 0,
        watchOverflow: true,
        updateOnWindowResize: true,
        observer: true,
        observeParents: true,
        observeSlideChildren: true,
        loop: loop,
        loopFillGroupWithBlank: loopFillGroupWithBlank,
        freeMode: freeMode,
        freeModeMomentum: freeModeMomentum,
        navigation: {
            nextEl: 'SELECTOR-BLOCK .arrows__next',
            prevEl: 'SELECTOR-BLOCK .arrows__prev',
            disabledClass: 'arrows__arrow_disabled',
        },
        pagination: {
            el: 'SELECTOR-BLOCK SELECTOR-DOTS',
            clickable: true,
            dynamicBullets: dynamicBullets,
            dynamicMainBullets: 1,
            bulletClass: 'dots__dot',
            bulletActiveClass: 'active',
            }
    }
    var swiper_instock = new Swiper('SELECTOR-BLOCK SELECTOR-LIST', options);

    swiper_instock.init();
}

// 1200 - ...
if ($('body').width() >= 1200) {
    if (blockItem.not('.swiper-slide-duplicate').length > 4) {
        if (blockList.hasClass('.swiper-container-initialized')) {
            swiper_instock.destroy(true, true);
        }
        paramsSlider(
            slidesPerView = 4,
            slidesPerGroup = 4,
            loop = true,
            loopFillGroupWithBlank = false,
            dynamicBullets = false
        );
        blockArrows.show();
    } else {
        blockArrows.hide();
        blockFooter.hide();
    }
}

// 992 - 1199
if ( $('body').width() >= 992 && $('body').width() <= 1199 ) {
    if ( blockItem.not('.swiper-slide-duplicate').length > 3 ) {
        if ( blockList.hasClass('.swiper-container-initialized') ) {
            swiper_instock.destroy(true, true);
        }
        paramsSlider(
            slidesPerView = 3,
            slidesPerGroup = 3,
            loop = true,
            loopFillGroupWithBlank = false,
            dynamicBullets = true
        );
        blockArrows.show();
    } else {
        blockArrows.hide();
        blockFooter.hide();
    }
}

// 768 - 991
if ( $('body').width() >= 768 && $('body').width() <= 991 ) {
    if ( blockItem.not('.swiper-slide-duplicate').length > 2 ) {
        if ( blockList.hasClass('.swiper-container-initialized') ) {
            swiper_instock.destroy(true, true);
        }
        paramsSlider(
            slidesPerView = 2,
            slidesPerGroup = 1,
            loop = true,
            loopFillGroupWithBlank = false,
            dynamicBullets = true,
            freeMode = true,
            freeModeMomentum = true
        );
        blockArrows.hide();
    } else {
        blockFooter.hide();
    }
}

// 640 - 767
if ( $('body').width() >= 640 && $('body').width() <= 767 ) {
    if ( blockItem.not('.swiper-slide-duplicate').length > 2 ) {
        if ( blockList.hasClass('.swiper-container-initialized') ) {
            swiper_instock.destroy(true, true);
        }
        paramsSlider(
            slidesPerView = 2,
            slidesPerGroup = 1,
            loop = true,
            loopFillGroupWithBlank = true,
            dynamicBullets = true,
            freeMode = true,
            freeModeMomentum = true
        );
        blockArrows.hide();
    } else {
        blockFooter.hide();
    }
}

// ... - 639
if ( $('body').width() <= 639 ) {
    if ( blockItem.not('.swiper-slide-duplicate').length > 1 ) {
        if ( blockList.hasClass('.swiper-container-initialized') ) {
            swiper_instock.destroy(true, true);
        }
        paramsSlider(
            slide = 1,
            slideGroup = 1,
            loop = true,
            fill = true,
            dynamicBullets = true,
            freeMode = true,
            freeModeMomentum = true
        );
        blockArrows.hide();
    } else {
        blockFooter.hide();
    }
}