これは、この古い質問に対する@StrangeElementによる回答に関するフォローアップの質問です: Twitter Bootstrapカルーセルプラグインはスライド遷移時にフェードインおよびフェードアウトできますか
@StrangeElementのmodをbootstrap.cssに試してみましたが、ほとんど機能しています。問題は、アクティブな画像がフェードアウトすると、白にフェードインし、次の画像がフェードインアニメーションなしでポップインすることです。ここで何が欠けているのでしょうか?
これが私が取り組んでいる例です:
http://planetofsoundonline.com/beta/index.php
どんな種類のポインタでも大歓迎です。ありがとう!
このフィドルを見てください を取ります。残念ながら、現在利用可能なバージョンのInternetExplorerでは機能しません。
カルーセルdiv
に必要なのは追加のクラスcarousel-fade
それが機能するために追加されました。
[ ソース ]
このトランジションは次の画像を表示し、その上に新しい画像をフェードアウトします。直接フェードアウトフェードインアニメーションが必要な場合は、これらの行をcssに追加します。
.carousel.carousel-fade .item {
opacity:0;
}
.carousel.carousel-fade .active.item {
opacity:1;
}
追加についてはどうですか:
filter: alpha(opacity=100); /* ie fix */
その結果:
.carousel.carousel-fade .item {
opacity:0;
filter: alpha(opacity=0); /* ie fix */
}
.carousel.carousel-fade .active.item {
opacity:1;
filter: alpha(opacity=100); /* ie fix */
}
カルーセルをスライドさせるのではなく、フェード画像に変更することに成功しました。また、CSSを介して画像を拡大縮小し、応答性を高めました。
img.carousel-img {
max-width:1900px;
width:100%;
}
残念ながら、Webkitブラウザーでは、フェードアニメーションがアクティブである間、すべての画像が元のサイズに拡大されました。そして、各アニメーションが終了した直後に、画像は上記のCSSルールに従って正しくスケーリングされます(すぐに、アニメーション化されません)。もちろん、アニメーションはこのように素人っぽくて吃音に見えました。だから私は追加しました
-webkit-transform: translate3d(0,0,0);
カルーセルのフェードトランジションルールに準拠し、それ以来、アニメーションは魅力のように機能します。したがって、ルールは次のようになります。
.carousel-fade .carousel-inner .item {
opacity: 0;
-webkit-transition-property: opacity;
-moz-transition-property: opacity;
-o-transition-property: opacity;
transition-property: opacity;
-webkit-transform: translate3d(0,0,0); /* WEBKIT-FIX FOR FADING SCALED IMAGES CORRECTLY VIA CSS-TRANSITIONS */
}
ここで私はこの解決策を見つけました: なぜ '-webkit-backface-visibility:hidden;'を適用すると、ios/ipad 5.1で負のマージン遷移の問題が修正されますか?
うまくいけば、次の人を助けます。スケールとフェードが欲しかった。
本当にクラスを追加する必要はありません。 Bootstrap 3.3.6
フェードとスケール(左/右矢印を考慮)
/* Carousel Scale and Fade */
/* Carousel Fade */
.carousel .item {
-webkit-transition: opacity 1s;
-moz-transition: opacity 1s;
-ms-transition: opacity 1s;
-o-transition: opacity 1s;
transition: opacity 1s;
}
.carousel .active.left, .carousel .active.right {
left: 0;
opacity: 0;
z-index: 2;
}
.carousel .next, .carousel .prev {
left: 0;
opacity: 1;
z-index: 1;
}
/* Carousel Scale */
.carousel .item.active {
animation: zoom 30s;
-moz-animation: zoom 30s;
-webkit-animation: zoom 30s;
-o-animation: zoom 30s;
}
@keyframes zoom {
from {transform:scale(1);}
to {transform:scale(2);}
}
@-moz-keyframes zoom {
from {-moz-transform:scale(1);}
to {-moz-transform:scale(2);}
}
@-webkit-keyframes zoom {
from {-webkit-transform:scale(1);}
to {-webkit-transform:scale(2);}
}
@-o-keyframes zoom {
from {-o-transform:scale(1);}
to {-o-transform:scale(2);}
}