私はブートストラップのカルーセルプラグインのさまざまな側面があなたが言及する効果を与えると思います。アクティブでない項目がdisplay: none
を有しながら
アクティブアイテムこれは、すべての項目display: block
を与え、その後、重複アイテムを生じる、top: 0
とleft: 0
とabsolute
にposition
を設定することにより解決することができるdisplay: block
を有します。 opacity: 0;
を設定すると、デフォルトでは非表示になります。
控除:position: absolute
の
.carousel-inner > .item {
opacity: 0;
top: 0;
left: 0;
width: 100%;
display: block;
position: absolute;
}
一つの問題は、コンテナがheight
を得ないということです。前の項目は、最初の項目のposition
をrelative
に設定することで解決できます(既に正しい位置を追加しています)。少ないコードでは、以下の通りである:
.carousel-inner > .item {
:first-of-type {
position:relative;
}
}
ブートストラップは、空間内の項目の位置を変更するtranslate3d
Sを使用します。これらの変換は必要ありませんので、再設定してください。以下、コードを以下に示す活用:
.carousel-inner > .item {
transform: translate3d(0,0,0) !important;
}
CSS遷移はjQueryを使ってCSSクラスを追加および削除することによってトリガされます。これらのクラス変更の間の時間は、カルーセルプラグインコード(Carousel.TRANSITION_DURATION = 600
)にハードコードされています。したがって、600ミリ秒後に、1つのアイテムがアクティブになります(.activeクラスを持つ)。それはあなたのCSS transition-duration
が0.6秒より大きい場合に予期しない動作が発生する理由です。次のように
CSSクラスの変更がある:だから>.active
- - >.active.left
- >次のアイテムは何のクラスを持っていない なし - >.next.left
アクティブな項目は、クラス.active
を持っています.active.left
と.next.left
が重要です(後方にスライドすると.prev.right
と.active.right
)。
すべての画像が既に積み重なっているので、opacity
を同時に変更することができるので、z-index
プロパティを使用してスタック内の画像を表示することができます。 this demoに結果を参照してください、
.carousel-control {
z-index:4;
}
はすべて一緒に置く:使用、コントロールが同様に表示されていることを確認するために
.carousel-inner {
> .next.left {
transition: opacity 0.6s ease-in-out;
opacity: 1;
z-index:2;
}
> .active.left {
z-index:1;
}
}
:あなたは次のスライドにフェードインするには、以下の少ないコードを使用することができます次の少ないコード使用する:上記のコードは、次のコマンドとCSSにLess autoprefixer pluginプラグインを使ってコンパイルすることができる
.carousel-inner {
> .item {
opacity: 0;
top: 0;
left: 0;
width: 100%;
display: block;
position: absolute;
z-index:0;
transition: none;
transform: translate3d(0,0,0) !important;
&:first-of-type {
position:relative;
}
}
> .active {
opacity: 1;
z-index:3;
}
> .next.left,
> .prev.right {
transition: opacity 0.6s ease-in-out;
opacity: 1;
left: 0;
z-index:2;
}
> .active.left,
> .active.right {
z-index:1;
}
}
.carousel-control {
z-index:4;
}
た:
lessc --autoprefix="Android 2.3,Android >= 4,Chrome >= 20,Firefox >= 24,Explorer >= 8,iOS >= 6,Opera >= 12,Safari >= 6' code.less
出力する:
.carousel-inner > .item {
opacity: 0;
top: 0;
left: 0;
width: 100%;
display: block;
position: absolute;
z-index: 0;
-webkit-transition: none;
-o-transition: none;
transition: none;
-webkit-transform: translate3d(0, 0, 0) !important;
transform: translate3d(0, 0, 0) !important;
}
.carousel-inner > .item:first-of-type {
position: relative;
}
.carousel-inner > .active {
opacity: 1;
z-index: 3;
}
.carousel-inner > .next.left,
.carousel-inner > .prev.right {
-webkit-transition: opacity 0.6s ease-in-out;
-o-transition: opacity 0.6s ease-in-out;
transition: opacity 0.6s ease-in-out;
opacity: 1;
left: 0;
z-index: 2;
}
.carousel-inner > .active.left,
.carousel-inner > .active.right {
z-index: 1;
}
.carousel-control {
z-index: 4;
}
あなたはおそらく、元遷移をリセットするにも表示されるはずです。http://bassjobsen.weblogs.fm/change-bootstraps-carousel-animantion/ –