gpt4 book ai didi

jquery - 如何在轮播 slider 中添加图像之间的间隙或消除滑动时的故障

转载 作者:行者123 更新时间:2023-12-01 08:35:55 24 4
gpt4 key购买 nike

我引用这个link做了一个轮播最初发布于此 link但不幸的是,我不想在第一张图片中填充。因此,我删除了第一个图像的填充,但这会产生较大的图像宽度。

所以我删除了所有图像中的填充,并为间隙添加了 margin-left

.carousel-item img {
padding: 0;
margin-right: 1rem; /* for gap */
}

但是当我滑动它时,这会产生某种类型的故障。

是否有解决方案可以在图像之间添加间隙(不在第一个和最后一个图像中)?

Codepen链接:https://codepen.io/Nisharg/pen/qwajmx

$('#travelCarousel').carousel({
interval: false
});

$('#travelCarousel.carousel .carousel-item').each(function(){
let next = $(this).next();
if (!next.length) {
next = $(this).siblings(':first');
}
next.children(':first-child').clone().appendTo($(this));

for (let i=0;i<3;i++) {
next=next.next();
if (!next.length) {
next = $(this).siblings(':first');
}

next.children(':first-child').clone().appendTo($(this));
}
});
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css">
<style>
.carousel-item img {
padding: 0;
margin-right: 1rem; /* for gap */
}


.carousel-inner .carousel-item.active,
.carousel-inner .carousel-item-next,
.carousel-inner .carousel-item-prev {
display: flex;
}

.carousel-inner .carousel-item-right.active,
.carousel-inner .carousel-item-next {
transform: translateX(33.33333333%);
}

.carousel-inner .carousel-item-left.active,
.carousel-inner .carousel-item-prev {
transform: translateX(-33.33333333%);
}

.carousel-inner .carousel-item-right,
.carousel-inner .carousel-item-left {
transform: translateX(0);

}
</style>
<div class="travel__carousel">
<div id="travelCarousel" class="carousel slide" data-ride="carousel">
<div class="carousel-inner">
<div class="carousel-item active">
<img class="col-md-6 col-xl-4" src="https://picsum.photos/200/300?image=0" alt="img-1">
</div>
<div class="carousel-item">
<img class="col-md-6 col-xl-4" src="https://picsum.photos/200/300?image=2" alt="img-2">
</div>
<div class="carousel-item">
<img class="col-md-6 col-xl-4" src="https://picsum.photos/200/300?image=3" alt="img-3">
</div>
<div class="carousel-item">
<img class="col-md-6 col-xl-4" src="https://picsum.photos/200/300?image=4" alt="img-4">
</div>
<div class="carousel-item">
<img class="col-md-6 col-xl-4" src="https://picsum.photos/200/300?image=5" alt="img-5">
</div>
</div>
</div>
<div class="travel__arrows">
<a class="btn" href="#travelCarousel" role="button" data-slide="prev"><i class="fas fa-arrow-left"></i></a>
<a class="btn" href="#travelCarousel" role="button" data-slide="next"><i class="fas fa-arrow-right"></i></a>
</div>
</div>

<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>

我不想使用任何第三方 JS 库,例如 Slick.js。

最佳答案

我认为这种方法的最大问题是硬编码的“33.333%”转换没有考虑间隙/裕度。如果您使用calc(x% + gap)作为转换的值,它效果很好。

此外,为了适应所有更改可见幻灯片数量的 Bootstrap 断点,您需要添加不同的过渡偏移(例如,小屏幕为 20% 偏移,大屏幕为 50% 偏移)。这种方法的粗略示例可以在下面的codepen中找到。 .

关于jquery - 如何在轮播 slider 中添加图像之间的间隙或消除滑动时的故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55563369/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com