

初めまして。
現在、仕事でECサイトを作成しているのですが、
複数のbxsliderをタブで切り替えて表示をさせてたいと考えております。
試してみると、1つ目はsliderがきちんと表示されていますが、
2つ目タブ以降が中身が表示されない状態となってしまいました。
■仕様したJquery【bxslider】
http://bxslider.com/
サイトのコード記述は下記の通りです。
HTML-------------------------------
<ul id="tab">
<li class="select">総合</li>
<li>トップス</li>
<li>ボトムス</li>
</ul>
<!--rank01-->
<div class="content_wrap">
<div class="bx-wrapper">
<div class="bx-viewport">
<div class="slider1">
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb01.jpg" />
</div>
</div>
</div><!--//bx-viewport-->
</div><!--//bx-wrapper-->
</div><!--//content_wrap-->
<!--rank02-->
<div class="content_wrap disnon">
<div class="bx-wrapper">
<div class="bx-viewport">
<div class="slider1">
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
<div class="slide">
<img src="sp_index/img/thumb02.jpg" />
</div>
</div>
</div><!--//bx-viewport-->
</div><!--//bx-wrapper-->
</div><!--//content_wrap-->
<!--rank03-->
<div class="content_wrap disnon">
<div class="bx-wrapper">
<div class="bx-viewport">
<div class="slider1">
※rank02同様
</div>
</div><!--//bx-viewport-->
</div><!--//bx-wrapper-->
</div><!--//content_wrap-->
jquery.bxslider.cssはほぼダウンロードしたままを使用していますが、
タブに対するcssはこちらです。
CSS-------------------------------
ul#tab{
display:table;
table-layout:fixed;
width:100%;
}
#tab li.select {
background: none repeat scroll 0% 0% #fff;
color:#000;
border-top:#d9d9d9 1px solid;
border-left:#d9d9d9 1px solid;
border-right:#d9d9d9 1px solid;
}
#tab li {
display:table-cell;
padding: 10px;
list-style: none outside none;
cursor: pointer;
background: none repeat scroll 0% 0% #d9d9d9;
text-align:center;
border:#FFFFFF 1px solid;
border-top-left-radius:5px; /* 左上角丸 */
border-top-right-radius:5px;
color:#666;
font-size:8px;
}
.content_wrap {
width: 100%;
height:auto;
font-size: 20px;
text-align: center;
line-height: 100px;
background: none repeat scroll 0% 0% #fff;
color: #000;
overflow:hidden;
}
.disnon {
display: none;
}
タブのJava Scriptは、
Java Script-------------------------------
$(function() {
$("#tab li").click(function() {
var num = $("#tab li").index(this);
$(".content_wrap").addClass('disnon');
$(".content_wrap").eq(num).removeClass('disnon');
$("#tab li").removeClass('select');
$(this).addClass('select')
});
});
sliderの方のJava Scriptは、
Java Script-------------------------------
$(document).ready(function(){
$('.slider1').bxSlider({
slideWidth: 200,
minSlides: 3,
maxSlides: 3,
slideMargin: 10,
});
});
以上です。
まだまだ知識も浅く、Java Scriptに関しては特に勉強不足で、いつもJqueryを手探りで実装している状態です。
この文章で質問事項もしっかりと伝えることが出来ているのか不安ですが、どなたか良きアドバイスお願いできますでしょうか。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
●HTMLの<div class="content_wrap disnon">のdisnonを削除。
●jQueryは以下
<script>
$(function() {
$('.slider1').bxSlider({
slideWidth: 200,
minSlides: 3,
maxSlides: 3,
slideMargin: 10,
});
$(".content_wrap:not(:eq(0))").hide();
$("#tab li").click(function() {
var num = $("#tab li").index(this);
$(".content_wrap").hide();
$(".content_wrap").eq(num).show();
$("#tab li").removeClass('select');
$(this).addClass('select')
});
});
</script>
【jQuery説明】
概要としては、スクリプトの実行の順序を変えるって感じで。
①まず最初にbxsliderを実行。
②その後にタブの非表示。
disnonを消したので代わりに、.content_wrapの1つ目以外を.hide()で隠す。
③それからタブのスクリプト。
disnon消したし、クラスdisnonにほかの役目がなさそうだったので、
タブの表示非表示を.hide()と.show()に変えましたが、もともとのaddClass,removeClassのままでも良いと思います。
あとセレクタで何度も出てくるものは代入したほうが良いかも。。この程度ならしなくてもほぼ速度変わらないと思いますが。。
※もしこれでうまく行かなかったら、②③はjQueryじゃなくてjsのwindow.onload = function() {}で囲って試してください。あくまで順序のために実行タイミングを変えるだけですけど。
頑張ってください。
回答ありがとうございます。
cssで非表示設定していたことがまず間違っていたのですね。
いただいたアドバイス通り設定しましたら、無事に2つ目以降も表示されました。
どこをどう記入したらいいかも分からなかった為、ご丁寧に説明までしていただき、とても助かりました。
本当にありがとうございます!
Java Scriptに関しては、これからもっと勉強をしていきたいと思います。
アドバイスいただきまして、ありがとうございました。
No.1
- 回答日時:
ちゃんと追いかけてないので、半分想像の回答ですので申し訳ないのですが・・・
boxsliderの設定時に、関係要素が非表示だと要素サイズなどが取得できずに、設定がうまくできないのが原因ではないかと推測します。
以下の手順で設定してみてもうまくいかないでしょうか?
1)HTMLの初期表示状態は、CSS等で非表示としない。
(特にタブなどを)
2)document.readyでboxsliderの設定を行う。
3)上記設定後に、初期状態で表示しないタブをスクリプトから非表示にする。
回答ありがとうございます。
ご指摘いただいたように、cssで非表示設定していたことが根本の原因だったようです。
JavaScriptで具体的にどう設定したらよいかも分からい程知識不足でしたが、別の方より助言いただくことができ、無事に解決しました。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
交互に入れ替わる画像を複数配置
-
デフォルト非表示にしたい。【t...
-
MAX関数を使ってからLEFT JOIN...
-
jQueryでクリックされた要素のi...
-
Slick.jsのオプションrtlについて
-
Javascriptで指定した日付と時...
-
jspでcssが読み込めない
-
libjpegライブラリの使い方につ...
-
JQuery UIで、表示したタブの中...
-
【CSS】floatで左右に並べた...
-
[JavaScript]IE11にてフリック...
-
clear: bothの事で質問です。
-
オンマウスで流れる文字
-
外部javascriptの重複を防ぐには
-
jQueryの.text()関数でiframe
-
getElementByIdの戻り値がnull...
-
javascriptテキストBOX色を元に...
-
クリックすると画像を表示するタグ
-
【初心者】UWSCでjavascriptで...
-
jsファイルのエラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bxsliderで最初に縦に複数表示...
-
Javascript初心者|jQueryの.va...
-
jQueryでのドラッグアンドドロ...
-
アップロードファイルの種類に...
-
昔作ったHPのjavascritがグーグ...
-
パララックスについて 上下に...
-
Javascriptのエラーに悩まされ...
-
デフォルト非表示にしたい。【t...
-
JavaScriptでサイコロのような...
-
jQueryで同じクラス名のものを...
-
交互に入れ替わる画像を複数配置
-
JavaScriptでの画像切り替えを...
-
fancyboxのポップアップ時の画...
-
スワップイメージのフェード方...
-
「画像クリックで音声再生」を ...
-
透過PNGをIE6へ、かつYoutubeの...
-
embed要素のsrc属性の値を変更...
-
jQueryでスマホ向けページのロ...
-
jQueryで表示している所をsubm...
-
onMouseoverについて教えてくだ...
おすすめ情報