Slick.js 如何在轮播中对齐图片?
Slick.js how to align images in center of carousel?
默认情况下,图像在左侧对齐。使用设置 centerMode: true
图像从左侧对齐几个像素,下一张图像的边缘从右侧窥视,如图所示:
这些是使用的设置:
for (var i in data.image_set) {
sc.append('<div><img src="' + data.image_set[i].image + '" height="' + data.image_set[i].height + '" width="' + data.image_set[i].width + '"></div>');
}
sc.slick({
dots: true,
speed: 150,
centerMode: true
});
我想让滑块在中央只显示一个图像,并且可以选择让上一个和下一个图像分别在左侧和右侧部分可见。如何实现?
$(document).ready(function() {
$('.sc').slick({
dots: true,
speed: 150,
centerMode: true
});
});
.sc img {
height: calc(50vh - 100px);
width: auto;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick-theme.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.js"></script>
<div class="sc">
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/I152rUr6ZBih.png?Signature=YFF9BB8dlAe7okzBHnRLWgYmFI8%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="900" width="674">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/HvAQty35hkNv.png?Signature=8HQKRBefUe%2B4f3sKX1vag78dCbQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/A6CZ5y6EUmNg.png?Signature=bsArQ0sX8o9mtgIISwtFPW2hzSM%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/EGO36t7pzBWp.png?Signature=txW6IP9KJ8bB0S%2B9QCYQTEy6Q%2BQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
</div>
$(document).ready(function() {
$('.sc').slick({
dots: true,
speed: 150,
centerMode: true
});
});
.sc img {
height: calc(50vh - 100px);
width: auto;
margin: 0 auto; /* it centers any block level element */
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick-theme.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.js"></script>
<div class="sc">
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/I152rUr6ZBih.png?Signature=YFF9BB8dlAe7okzBHnRLWgYmFI8%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="900" width="674">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/HvAQty35hkNv.png?Signature=8HQKRBefUe%2B4f3sKX1vag78dCbQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/A6CZ5y6EUmNg.png?Signature=bsArQ0sX8o9mtgIISwtFPW2hzSM%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/EGO36t7pzBWp.png?Signature=txW6IP9KJ8bB0S%2B9QCYQTEy6Q%2BQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
</div>
问题出在 dividual 幻灯片中的每一张 div 都会自动跨越轮播的宽度,但图像不会填满 div s 完全并且默认情况下 left-aligning 在其容器内。尝试在您的样式中添加类似这样的内容:
.sc div { text-align: center; }
.sc img { margin: auto; }
有类似的问题,当所有 img 的高度不同时,它们没有对齐到滑块中:
在 "slick.css" 中找到 .slick-track
并将 display
更改为 flex
并添加 align-items: center
.
默认情况下,图像在左侧对齐。使用设置 centerMode: true
图像从左侧对齐几个像素,下一张图像的边缘从右侧窥视,如图所示:
这些是使用的设置:
for (var i in data.image_set) {
sc.append('<div><img src="' + data.image_set[i].image + '" height="' + data.image_set[i].height + '" width="' + data.image_set[i].width + '"></div>');
}
sc.slick({
dots: true,
speed: 150,
centerMode: true
});
我想让滑块在中央只显示一个图像,并且可以选择让上一个和下一个图像分别在左侧和右侧部分可见。如何实现?
$(document).ready(function() {
$('.sc').slick({
dots: true,
speed: 150,
centerMode: true
});
});
.sc img {
height: calc(50vh - 100px);
width: auto;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick-theme.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.js"></script>
<div class="sc">
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/I152rUr6ZBih.png?Signature=YFF9BB8dlAe7okzBHnRLWgYmFI8%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="900" width="674">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/HvAQty35hkNv.png?Signature=8HQKRBefUe%2B4f3sKX1vag78dCbQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/A6CZ5y6EUmNg.png?Signature=bsArQ0sX8o9mtgIISwtFPW2hzSM%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/EGO36t7pzBWp.png?Signature=txW6IP9KJ8bB0S%2B9QCYQTEy6Q%2BQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
</div>
$(document).ready(function() {
$('.sc').slick({
dots: true,
speed: 150,
centerMode: true
});
});
.sc img {
height: calc(50vh - 100px);
width: auto;
margin: 0 auto; /* it centers any block level element */
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick-theme.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/slick-carousel/1.5.9/slick.min.js"></script>
<div class="sc">
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/I152rUr6ZBih.png?Signature=YFF9BB8dlAe7okzBHnRLWgYmFI8%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="900" width="674">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/HvAQty35hkNv.png?Signature=8HQKRBefUe%2B4f3sKX1vag78dCbQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/A6CZ5y6EUmNg.png?Signature=bsArQ0sX8o9mtgIISwtFPW2hzSM%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
<div>
<img src="https://lespider-ca.s3.amazonaws.com:443/EGO36t7pzBWp.png?Signature=txW6IP9KJ8bB0S%2B9QCYQTEy6Q%2BQ%3D&Expires=1452236979&AWSAccessKeyId=AKIAIS4C7GGEGJPLLSMA" height="673" width="900">
</div>
</div>
问题出在 dividual 幻灯片中的每一张 div 都会自动跨越轮播的宽度,但图像不会填满 div s 完全并且默认情况下 left-aligning 在其容器内。尝试在您的样式中添加类似这样的内容:
.sc div { text-align: center; }
.sc img { margin: auto; }
有类似的问题,当所有 img 的高度不同时,它们没有对齐到滑块中:
在 "slick.css" 中找到 .slick-track
并将 display
更改为 flex
并添加 align-items: center
.