3

我在更改 AngularUi 的过渡时遇到一个小问题单击此处轮播过渡我想将轮播的标准滑动过渡更改为fadeIn FadeOut过渡单击此处在 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 动画以实现淡入淡出

 @-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;
}

但是,它也没有按照我想要的方式工作。有没有人遇到过这个问题?或者有人有解决问题的方法吗?

4

2 回答 2

2

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

在播放过渡时,“活动”和“下一张”幻灯片都有“下一张”类。因此,您需要确保在应用“左”类时转换已经开始,否则模块不知道转换已结束以继续下一张幻灯片。

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

.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;
      }
    }
  }
}

我还必须将 carousel-inner div 的高度设置为图像的高度,因为幻灯片现在是绝对定位的。

于 2014-04-12T22:27:39.097 回答
0

2018 年更新

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

引导程序 3

我发现不透明度更适合淡化效果。

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

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

于 2013-11-05T15:22:45.783 回答