所以我使用了Slick Carousel,我在其中显示了我的数据库中的一个产品列表,出于性能原因限制为24个,但我需要显示所有的产品,所以我做了一个afterChange函数,每当用户在幻灯片结束前2张幻灯片时,ajax会加载另外24个产品,并使用slickAdd函数将它们添加到Slick的末尾。
一切正常,但当slickAdd函数执行时,幻灯片宽度由于某种原因从457px更改为451px,我可以在当前幻灯片上看到第4张幻灯片的一部分。(我显示了3张)然后,如果我再次单击Next按钮,宽度将返回到457px,一切正常。
$('.demo').slick({
slidesToShow: 3,
slidesToScroll: 3,
infinite: false,
});
$('.demo').on('afterChange', function(event, slick, currentSlide, nextSlide){
var komponent = $(".komponent-container.active").attr("id");
var loadWhen = currentSlide+6;
if(loadWhen == slick.slideCount){
console.log("loadmore");
$.ajax({
type: "POST",
url: "/project/public/konfigurator",
data: {id: komponent, from_column: slick.slideCount, requestid: "load_more"},
dataType: "json",
success: function (data) {
var data_parser = JSON.parse(data)[0];
if (data_parser.length > 0) {
var html = '';
for (i = 0; i < data_parser.length; i++) {
var produkt_nazov = 0;
if (data_parser[i].produkt.length > 45) {
produkt_nazov = data_parser[i].produkt.substring(0, 45) + "...";
} else {
produkt_nazov = data_parser[i].produkt;
}
html += '<div><div class="item-container"><div class="container-wrapper"><div class="produkt-container"><div class="item-left"><div class="item-image-wrapper"><img draggable="false" id="produkt-img" src="img/konfigurator/'+komponent+'/' + data_parser[i].produkt + '/1.jpg" alt="" /></div><div class="cena">' + data_parser[i].cena + ' €</div></div><div class="item-right"><div class="item-info"><span class="item-title">' + produkt_nazov + '</span><span class="item-description"><span>Výrobca čipu - ' + data_parser[i].vyrobca_cipu + '</span><span>Veľkosť pamäte - ' + data_parser[i].vram_size + '</span><span>Typ pamäte - ' + data_parser[i].vram_type + '</span><span>Frekvencia jadra - ' + data_parser[i].gpu_memory_clockrate + '</span></span></div><div class="spodna-cast"><div class="action-buttons"><a class="detail-button">Detail</a><a class="add-button">Vybrať</a></div></div></div></div></div></div></div>';
}
$(".demo").slick('slickAdd', html);
console.log("add");
}
},
error: function (result) {
alert('error');
}
});
}
});
});
是什么原因导致了这种情况以及如何预防?
1条答案
按热度按时间8aqjt8rx1#
这个帮我修好了