Bootstrap 4 调整屏幕大小时,在滑块动画期间轮播最后一个图像宽度仍然比滑块宽度宽(不裁剪到滑块宽度)

Bootstrap 4 carousel last image width remains wider than slider width (not cropping to slider width) during slider animation when screen is resized

我在 https://competent-lamport-72eab6.netlify.com/ 有一个 bootstrap 4 旋转木马滑块。

滑块有 3 个幻灯片。但是,为了优化页面速度,我包含了 5 张不同尺寸的图像,它们以特定的屏幕宽度加载。我使用 <picture><srcset>.

完成了此操作

查看下面我的代码:

<div class="carousel-item">
 <picture>
    <source class="lazy" srcset="img/carousel/great-wall44-375.jpg" media="(max-width: 375px)" >
    <source class="lazy" srcset="img/carousel/great-wall44-768.jpg" media="(max-width: 768px)" >
    <source class="lazy" srcset="img/carousel/great-wall44-1200x514.jpg" media="(max-width: 1200px)" >
    <source class="lazy" srcset="img/carousel/great-wall44-1400x514.jpg" media="(max-width: 1400px)" >  
    <source class="lazy" srcset="img/carousel/great-wall44-1920x902-low.jpg" media="(max-width: 1920px)" >
    <img class="lazy" src="img/carousel/great-wall44.jpg" data-src="img/carousel/great-wall44-new5.jpg" >
 </picture>
</div>

如您所见,我在各自的断点处加载了各种图像:375px、768px、1200px、1400px 和 1920px。然而,这非常有效..

问题

页面调整大小(或在小型设备上看到)时,前两张幻灯片过渡得很好,但是最后一张幻灯片似乎首先 滑动到幻灯片中图像的整个宽度 ,然后再次滑回第一张幻灯片。

这里有一个图片示例来帮助阐明问题:

  1. 我们去https://competent-lamport-72eab6.netlify.com/
  2. 我们已将浏览器大小调整为 400 像素。您将看到滑块加载 375 像素和 767 像素屏幕宽度之间的 768 像素图像。见下图:

  3. 前两张幻灯片滑得不错。太棒了!

  4. 这是屏幕宽度为 400 像素的第 3 张幻灯片:

  5. 这是 400 像素幻灯片中的完整 768 像素大小的图像 div。

  6. 所以这里滑动的时候,不是滑动400px的裁剪图,而是先滑动到768px的全图,过渡时看起来像这样:

在回到第一张幻灯片之前。

这就是问题所在。它发生在沿途的每个断点。

这看起来非常简陋。我想要的是解决这个问题。最后一张幻灯片应该像前两张幻灯片一样动画。请查看滑块并重新创建我的步骤以查看实际问题。

如有任何帮助,我将不胜感激,

提前致谢。

我找到了轮播图片未裁剪到滑块宽度的解决方案。我通过将 overflow: hidden; 添加到 .carousel-item.

解决了这个问题

所以 html 保持不变。但是 CSS 已经添加了。

.carousel-item {
      overflow: hidden;
}

好东西!我希望这可以帮助任何关注 bootstrap 旋转木马滑块图像溢出问题的人。