正如我已故的伟大计算机科学教授常说的那样,这个解决方案并不简单。这光滑的旋转木马 http://kenwheeler.github.io/slick/(Bootstrap Carousel 的衍生品)使用class="sld-transition-2"
(三个可用类之一)在 body 标记上设置轮播的过渡。这与我试图设置的淡入淡出过渡相冲突。所以它被删除了。
提供的CSS3解决方案here http://codepen.io/transportedman/pen/NPWRGq?editors=110来自这个 Stackoverflowanswer https://stackoverflow.com/questions/26770055/bootstrap-carousel-fade-no-longer-working-with-maxcdn-3-3-bootstrap-min-css@transportedman 的作品是关键。我根据我们的要求对其进行了一些修改,并将其放置在要为站点加载的最后一个 CSS 文件中(以覆盖之前的所有内容):
/*
inspired from http://codepen.io/Rowno/pen/Afykb
https://stackoverflow.com/questions/26770055/bootstrap-carousel-fade-no-longer-working-with-maxcdn-3-3-bootstrap-min-css
*/
.carousel-fade .carousel-inner .item {
opacity: 0;
transition-property: opacity;
transition-duration: 4s;
transition-timing-function:linear;
}
.carousel-fade .carousel-inner .active {
opacity: 1;
}
.carousel-fade .carousel-inner .active.left,
.carousel-fade .carousel-inner .active.right {
left: 0;
opacity: 0;
z-index: 1;
}
.carousel-fade .carousel-inner .next.left,
.carousel-fade .carousel-inner .prev.right {
opacity: 1;
}
.carousel-fade .carousel-control {
z-index: 2;
}
/*
WHAT IS NEW IN 3.3: "Added transforms to improve carousel performance in modern browsers."
now override the 3.3 new styles for modern browsers & apply opacity
*/
@media all and (transform-3d), (-webkit-transform-3d) {
.carousel-fade .carousel-inner > .item.next,
.carousel-fade .carousel-inner > .item.active.right {
opacity: 0;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.carousel-fade .carousel-inner > .item.prev,
.carousel-fade .carousel-inner > .item.active.left {
opacity: 0;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.carousel-fade .carousel-inner > .item.next.left,
.carousel-fade .carousel-inner > .item.prev.right,
.carousel-fade .carousel-inner > .item.active {
opacity: 1;
-webkit-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
}
最后但并非最不重要的一点是,修改轮播 DIV 标签以具有data-interval
属性,它比transition-duration
在上面的CSS3中设置:
<div class="carousel slide carousel-fade" id="slideshow-carousel-1" data-ride="carousel" data-interval="7000">
.....
</div>
希望这可以帮助遇到类似问题的其他人。