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。然而,这非常有效..
问题
当页面调整大小(或在小型设备上看到)时,前两张幻灯片过渡得很好,但是最后一张幻灯片似乎首先 滑动到幻灯片中图像的整个宽度 ,然后再次滑回第一张幻灯片。
这里有一个图片示例来帮助阐明问题:
- 我们去https://competent-lamport-72eab6.netlify.com/。
我们已将浏览器大小调整为 400 像素。您将看到滑块加载 375 像素和 767 像素屏幕宽度之间的 768 像素图像。见下图:
前两张幻灯片滑得不错。太棒了!
这是屏幕宽度为 400 像素的第 3 张幻灯片:
这是 400 像素幻灯片中的完整 768 像素大小的图像 div。
所以这里滑动的时候,不是滑动400px的裁剪图,而是先滑动到768px的全图,过渡时看起来像这样:
在回到第一张幻灯片之前。
这就是问题所在。它发生在沿途的每个断点。
这看起来非常简陋。我想要的是解决这个问题。最后一张幻灯片应该像前两张幻灯片一样动画。请查看滑块并重新创建我的步骤以查看实际问题。
如有任何帮助,我将不胜感激,
提前致谢。
我找到了轮播图片未裁剪到滑块宽度的解决方案。我通过将 overflow: hidden;
添加到 .carousel-item
.
解决了这个问题
所以 html 保持不变。但是 CSS 已经添加了。
.carousel-item {
overflow: hidden;
}
好东西!我希望这可以帮助任何关注 bootstrap 旋转木马滑块图像溢出问题的人。
我在 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。然而,这非常有效..
问题
当页面调整大小(或在小型设备上看到)时,前两张幻灯片过渡得很好,但是最后一张幻灯片似乎首先 滑动到幻灯片中图像的整个宽度 ,然后再次滑回第一张幻灯片。
这里有一个图片示例来帮助阐明问题:
- 我们去https://competent-lamport-72eab6.netlify.com/。
我们已将浏览器大小调整为 400 像素。您将看到滑块加载 375 像素和 767 像素屏幕宽度之间的 768 像素图像。见下图:
前两张幻灯片滑得不错。太棒了!
这是屏幕宽度为 400 像素的第 3 张幻灯片:
这是 400 像素幻灯片中的完整 768 像素大小的图像 div。
所以这里滑动的时候,不是滑动400px的裁剪图,而是先滑动到768px的全图,过渡时看起来像这样:
在回到第一张幻灯片之前。
这就是问题所在。它发生在沿途的每个断点。
这看起来非常简陋。我想要的是解决这个问题。最后一张幻灯片应该像前两张幻灯片一样动画。请查看滑块并重新创建我的步骤以查看实际问题。
如有任何帮助,我将不胜感激,
提前致谢。
我找到了轮播图片未裁剪到滑块宽度的解决方案。我通过将 overflow: hidden;
添加到 .carousel-item
.
所以 html 保持不变。但是 CSS 已经添加了。
.carousel-item {
overflow: hidden;
}
好东西!我希望这可以帮助任何关注 bootstrap 旋转木马滑块图像溢出问题的人。