イメージを3つの行に分割する3つのカルーセルを作成します。jQueryを使ってHTMLを整理する:配列からスライスして各アイテムがある「items」の3行(imgs.lenght/3)を整理する方法
これが私の現在のHTMLである:例えば×6
<img>
。
<div class="car-cont">
<img src="img.jpg">
<img src="img.jpg">
<img src="img.jpg">
<img src="img.jpg">
<img src="img.jpg">
<img src="img.jpg">
</div>
これは結果でなければなりません:
はjQuery(document).ready(function(){
// Adds this "animg" class in a div outside every img tag
jQuery(".car-cont > img").wrap("<div class='animg'></div>");
// Calculates how many "items" should be in a row. for example if there are 6 items - there should be 2 items in a row of one carusele
var imgNums = jQuery('.animg').length;
imgNums = imgNums/3;
// Organize to Items - for every 7 images add the class item.
var theItems = jQuery(".car-cont > .animg");
for(var i = 0; i < theItems.length; i+=7) {
theItems.slice(i, i+7).wrapAll("<div class='item'></div>");
}
// Organize to Carusel containers (items) - split the items so there will be 2 items pear each row of carusel
var theCarusels = jQuery(".car-cont > .item");
for (var c=0; c < theCarusels.length; c+=imgNums) {
theCarusels.slice(c, c+imgNums).wrap("<div class='carousel slide' id='myCarousel'><div class='carousel-inner'></div></div>");
}
jQuery('.carousel-inner > .item:first').addClass('active');
jQuery('.carousel').carousel({
interval: 3000
});
});
問題がで起動:
<div class="carousel slide" id="myCarousel">
<div class="carousel-inner">
<div class="item">
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
</div>
<div class="item">
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
</div>
</div>
</div>
<div class="carousel slide" id="myCarousel">
<div class="carousel-inner">
<div class="item">
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
</div>
<div class="item">
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
</div>
</div>
</div>
<div class="carousel slide" id="myCarousel">
<div class="carousel-inner">
<div class="item">
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img-1.jpg" >
</div>
</div>
<div class="item">
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
<div class="animg">
<img class="alignnone" src="img.jpg" >
</div>
</div>
</div>
</div>
と、これは私のjQueryの一部である(私は慎重に確認してください各コード部分に、より説明しました) var theCarusels
ステートメントの後のループ。
私が手:
と.wrapAll
を使用してこの結果を与える:
以前の編集では、元のhtmlに最終的なhtmlに再フォーマットする場所が多くなっていました。今はちょうど6のようです。いろいろなカルーセルが今やお互いに重複していますか? – JonSG
6つ以上ある場合があります。私はちょうど6つの最も簡単な例を作ることができたと思っています。 –
@JonSGもしそうなら、imgNumは3になり、各 "カルーセル内部" divに3つの "items" 。 12の画像がある場合、imgNumは4になり、各「カルーセル内の」divには4つの「アイテム」があります。 Ect ..;) 私はこのクラスを得ることはできません= item split right。 –