私はmyCarouselというIDを持つブートストラップカルーセルを持っています。スライドロード時にアクティブなアイテムのCSSプロパティを変更する方法
カルーセルの固定高さは、javascript関数setCarouselSizeStaticで設定され、画像はCSSの下に中央に配置されます。
私は1つの小さな画像を持っていますが、それはより少ない高さを持っているので、それはトップに浮いています。私はまだ水平に中心を置いている間、写真を底にくっつけたい。
次のスライドがロードされる前に、画像の余白の上端をCarauselHeight - imgeHeightに等しくなるように変更します。
私の質問はこれを達成する方法ですか?
がここにHTMLれる:画像を中央
<div id="myCarousel" class="carousel slide" data-ride="carousel">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#myCarousel" data-slide-to="0" class="active"></li>
<li data-target="#myCarousel" data-slide-to="1"></li>
<li data-target="#myCarousel" data-slide-to="2"></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<img class="Image" src="http://somewhere.image1.jpg" alt="Image from google">
<div class="carousel-caption">
<h3>Title</h3>
<p>Description</p>
</div>
</div>
<div class="item">
<img class="Image" src="http://somewhere.image2.jpg" alt="Image from google">
<div class="carousel-caption">
<h3>Title</h3>
<p>Description</p>
</div>
</div>
<div class="item">
<img class="Image" src="http://somewhere.image3.jpg" alt="Image from google">
<div class="carousel-caption">
<h3>Title</h3>
<p>Description</p>
</div>
</div>
</div>
はCSS:
.carousel-inner > .item> img {
margin: 0 Auto;
}
ここでは私のjavascriptです:
$(document).ready(function() {
$('#myCarousel').carousel();
setCarauselSizeStatic();
});
//The purpose of this function is to make the carousel the same size
//for other images than the first without breaking responsivness
//as my first image is the biggest it all makes sense
$('#myCarousel').on('slide.bs.carousel', function() {
//get the width of the image loaded
var imageHeight = $('.active').height();
//get the width of the carausel
var carHeight = $('#myCarousel').height();
//calculate the margin
var margin = carHeight - imageHeight;
//make the top margin of the item equal to CarouselHeight - imageHeight
$(".active").css("margin", margin);
});
function setCarauselSizeStatic() {
$("#myCarousel").css("height", $('#myCarousel').height()
)};
残念ながら、このソリューションはうまくいきません。 probleは.activeと一緒にいるかもしれませんか?カルーセルにロードされている要素に対してクラスがアクティブになっていますか?または多分CSS機能? CSSのjquery関数はマージンがpxであることをどのように知っていますか? –
私のために働いています:http://codepen.io/Nasir_T/pen/edqpQm。私があなたの要件を誤解していない限り。一つのことを言いたいと思います。カルーセルが設定されていない場合は、自動的にイメージサイズに自動的に調整されるため、イメージ用のカルーセルの固定高さを設定する必要があります。だからあなたが高さを設定した場合は、高さマージン調整ラインを除いて、このjQueryが必要です。この作業を行うには、CSSで作業してください。 –