如何更改Bootstrap的轮播从幻灯片到淡入淡出的过渡

时间:2013-11-05 15:01:32

标签: javascript jquery css3 twitter-bootstrap angular-ui-bootstrap

我在改变AngularUi click here轮播转换的过渡方面遇到了一些小问题我想将轮播的标准滑动转换更改为fadeIn FadeOut转换Click here在Plunker中提供的示例我已经注释掉滑动过渡的css

`carousel-inner > .item {
        display: none;
        position: relative;
        -webkit-transition: 0.6s ease-in-out left;
        -moz-transition: 0.6s ease-in-out left;
        -o-transition: 0.6s ease-in-out left;
        transition: 0.6s ease-in-out left;`
}

我试图通过将css动画更改为以下内容来略微操作css动画以实现淡入淡出

 @-webkit-keyframes carousel-inner {
    0%{
        opacity: 0;
    }

    100%{
        opacity: 1;
    }
}

@keyframes carousel-inner{
     0%{
        opacity: 0;
    }

    100%{
        opacity: 1;
    }
}


.carousel-inner > .item {
    display: none;
    position: relative;
     -webkit-transition: opacity 0.4s ease-in-out;
    -moz-transition: opacity 0.4s ease-in-out;
    -o-transition: opacity 2s ease-in-out;
    transition: opacity 0.4s ease-in-out;
}

然而,它并没有像我想要的那样工作。有没有人遇到过这个问题?或者有人有解决问题的方法吗?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,终于让它运转了。 来自angular-ui的轮播等待转换事件结束(它使用解析保证的转换模块),然后将活动类应用于下一张幻灯片。

在过渡期间,“活跃”和“并且' next'幻灯片有下一个'类。因此,您需要确保在“离开”时已经开始转换。应用类,否则模块不知道转换结束以继续下一张幻灯片。

这是将旋转木马从滑动变为褪色的css。我在旋转木马外部div中添加了一个额外的类fading

.carousel.fading .carousel-inner > .item {
  /* Override the properties for the default sliding carousel */
  display: block;
  position: absolute;
  left: 0 !important;

  /* Hide slides by default */
  opacity: 0;

  /* Set transition to opactity */
  -moz-transition: .6s ease-in-out opacity;
  -webkit-transition: .6s ease-in-out opacity;
  -o-transition: .6s ease-in-out opacity;
  transition: .6s ease-in-out opacity;
}

/* Active slides are visible on transition end */
.carousel.fading .carousel-inner > .active,
/* Next slide is visible during transition */
.carousel.fading .carousel-inner > .next.left {
    opacity: 1;
}
.carousel.fading .carousel-inner > .next,
.carousel.fading .carousel-inner > .active.left {
    opacity: 0;
}

这是我正在使用的SCSS代码:

.carousel.fading {
  .carousel-inner {
    height: 360px;
    .item {
      display: block;
      position: absolute;
      left: 0 !important;
      opacity: 0;
      @include transition(.6s ease-in-out opacity);
      &.active, &.next.left {
        opacity: 1;
      }
      &.next, &.active.left {
        opacity: 0;
      }
    }
  }
}

我还必须将旋转木马内部div的高度设置为我图像的高度,因为幻灯片现在位于绝对位置。

答案 1 :(得分:0)

更新2018

Bootstrap 4.1 将包含此处说明的carousel-fade转换: Bootstrap 4.0.0 Carousel fade transition

Bootstrap 3

我发现不透明度可以更好地适应淡化效果。

.carousel .item {
  opacity: 0;
  -webkit-transition-property: opacity;
  -moz-transition-property: opacity;
  -o-transition-property: opacity;
  transition-property: opacity;
}

演示:http://bootply.com/91957