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));