Slick Slider 响应每张幻灯片的产品数量
Slick Slider responsive number of products per slide
我的问题是关于每张幻灯片显示多个产品的最有效方法,然后随着响应断点的出现,列减少,每张幻灯片的产品也减少。当我们细分屏幕尺寸时,这将 增加 幻灯片的数量。
因此,如果我们从 2 行 4 行开始(每张幻灯片 8 个产品),那么在中等尺寸上我们显示 2 列 3 个(每张幻灯片 6 个产品),然后在移动设备上,一张幻灯片显示 2 列 2 个产品(共 4 个)。
我们可以在调整大小时将一些 JS 写入 运行 并剥离幻灯片包装并重新分配包装以获得我们想要的结果。
另一种方法是 运行 服务器请求调整大小以写入数据(对这可能的要求不乐观)。
我将 JSFiddle 放在一起以显示每个视口的最终结果通常是什么样子。
<div class="slider">
<ul class="fullslider">
<!-- Start Slide One -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<!-- End Slide One on Mobile -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<!-- End Slide One on Tablet -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<!-- End Slide One on Desktop -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
</ul>
</div>
要实现我认为您想要实现的目标,最有效、最简洁的方法是使用 slick carousel 的 responsive
设置。使用插件本身提供的设置比尝试在 resize
事件中手动执行或在服务器端执行要容易得多。这就是您使用此设置的方式:
$(".fullslider").slick({
slidesToShow: 4, // default desktop values
slidesToScroll: 4,
rows: 2,
dots: true,
arrows: true,
responsive: [
{
breakpoint: 980, // tablet breakpoint
settings: {
slidesToShow: 3,
slidesToScroll: 3
}
},
{
breakpoint: 480, // mobile breakpoint
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
}
]
});
断点表示您想要更改某些设置的像素数。在您的例子中,您想要更改当用户从平板电脑或 phone 查看时要显示和滚动的幻灯片数量。但是您不想更改其他设置,例如 rows
,所以不要在断点的 settings
中设置它;它将保持 2.
我的问题是关于每张幻灯片显示多个产品的最有效方法,然后随着响应断点的出现,列减少,每张幻灯片的产品也减少。当我们细分屏幕尺寸时,这将 增加 幻灯片的数量。
因此,如果我们从 2 行 4 行开始(每张幻灯片 8 个产品),那么在中等尺寸上我们显示 2 列 3 个(每张幻灯片 6 个产品),然后在移动设备上,一张幻灯片显示 2 列 2 个产品(共 4 个)。
我们可以在调整大小时将一些 JS 写入 运行 并剥离幻灯片包装并重新分配包装以获得我们想要的结果。
另一种方法是 运行 服务器请求调整大小以写入数据(对这可能的要求不乐观)。
我将 JSFiddle 放在一起以显示每个视口的最终结果通常是什么样子。
<div class="slider">
<ul class="fullslider">
<!-- Start Slide One -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<!-- End Slide One on Mobile -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<!-- End Slide One on Tablet -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<!-- End Slide One on Desktop -->
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
<div class="single-product"><img src="http://placekitten.com/400/400"></div>
</ul>
</div>
要实现我认为您想要实现的目标,最有效、最简洁的方法是使用 slick carousel 的 responsive
设置。使用插件本身提供的设置比尝试在 resize
事件中手动执行或在服务器端执行要容易得多。这就是您使用此设置的方式:
$(".fullslider").slick({
slidesToShow: 4, // default desktop values
slidesToScroll: 4,
rows: 2,
dots: true,
arrows: true,
responsive: [
{
breakpoint: 980, // tablet breakpoint
settings: {
slidesToShow: 3,
slidesToScroll: 3
}
},
{
breakpoint: 480, // mobile breakpoint
settings: {
slidesToShow: 2,
slidesToScroll: 2
}
}
]
});
断点表示您想要更改某些设置的像素数。在您的例子中,您想要更改当用户从平板电脑或 phone 查看时要显示和滚动的幻灯片数量。但是您不想更改其他设置,例如 rows
,所以不要在断点的 settings
中设置它;它将保持 2.