var swiperBox = []; var swiperIdx = 0; (function($){ $(document).ready( function() { _initCarousel(); }); let queue = null; let size = $(window).width(); $(window).resize(function() { clearTimeout( queue ); queue = setTimeout(function() { if(size != $(window).width()){ if(swiperBox.length > 0){ $(swiperBox).each(function(i){ swiperBox[i].destroy(true, false); }); } $('.ems_carousel').removeClass('set'); _initCarousel(); } size = $(window).width(); }, 200 ); }); function _update(calNo){ var updateNo = -1; if(calNo){ updateNo = calNo; } if(swiperBox.length > 0){ $(swiperBox).each(function(i){ if(updateNo == -1 || updateNo == i){ swiperBox[i].update(); } }); } } function _initCarousel(){ $('.ems_carousel:not(.set)').each(function(){ var sliderFlg = $(this).attr('cal-slider'); if(sliderFlg == 1){ var _direction = 'horizontal'; if($(this).attr('cal-direction')){ _direction = $(this).attr('cal-direction'); } var _loop = false; var _autoPlay = false; if($(this).attr('cal-loop')){ //スライドの合計幅が親要素の幅より小さい場合はループさせない  if($(this).width() <= $(this).find('.carousel_li').outerWidth(true)*($(this).find('.carousel_li').length)){ _loop = $(this).attr('cal-loop'); _autoPlay = {delay:$(this).attr('cal-anime-speed'), disableOnInteraction: false}; } } var swiper = new Swiper( this , { loop : _loop, freeMode: true, direction: _direction, slidesPerView: 'auto', autoplay: _autoPlay, speed: 500, navigation: {nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev'}, }); swiperBox.push(swiper); $(this).attr('cal-no' , swiperIdx++); } // lazy $(this).find('.item_image').lazyload(); // 表示(初動ちらつき対策) $(this).closest('.related_item_list').css('visibility', 'visible'); // セット完了クラス $(this).addClass('set'); }); } this.updateCarousel = _update; this.initCarousel = _initCarousel; }(jQuery));