ウィンドウ幅いっぱいにスライドを表示させたい。
そう思ってもなかなか思うような動作をするjavascriptを見つけるのが困難です。
見つけたとしても、それがレスポンシブに対応するのか否か。
そんなことまで気にしなくてはいけなくなりました。本当にいやな世の中ですね…

今回はレスポンシブに対応できる「bxslider」を利用してをウィンドウ幅に合わせてスライドするjavascriptを組み込めるよう調整してみました。

javascriptを読み込む

[js]
<script type="text/javascript" src="./js/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="./js/jquery.bxslider.min.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
//メインスライダー
var obj = $(‘#slide ul’).bxSlider({
auto: true, //スライドショーを自動再生
pause: 5000, //停止時間
speed: 2000, //スライドスピード
mode: ‘horizontal’, //スライドモード
controls: true, //コントロール(Next, Prev)を表示するかどうか
pager: false,
onSlideAfter:function(){ obj.startAuto();} //以下はコントロール類をクリックするとスライドは終了してしまうので、自動的に再開する
});
});
</script>
[/js]

bxsliderは公式サイトからダウンロードしてください。
bxsliderのオプションの例は以下の通りです。

option 指定できる値(意味) デフォルト
mode ‘horizontal’, ‘vertical’, ‘fade’ ‘horizontal’
speed integer(整数 単位はミリ秒) 500
slideMargin integer(整数 ピクセル)スライド間の距離(マージン) 0
startSlide integer(整数)最初に表示するスライドのインデックス(0から始まる) 0
randomStart boolean (true / false) スライドをランダムに表示するかどうか false
infiniteLoop boolean (true / false)
無限に繰り返すかどうか
true
captions boolean (true / false)
キャプションを表示するかどうか。キャプションは img 要素の title 属性に記述
false
ticker boolean (true / false)
継続的にスライドする(動き続ける)ティッカーモード
false
video boolean (true / false)
スライドにビデオが含まれる場合は「true」に設定してダウンロードした「plugins」
フォルダの「jquery.fitvids.js」も読み込むようにする。
false
responsive boolean (true / false) 
レスポンシブ対応にするかどうか
true
useCSS boolean (true / false) 
true の場合、CSS の transitions が使われ、 false の場合は、jQuery animate() が使われる。
true
pager boolean (true / false)
ページャー(丸いアイコン)の表示
true
controls boolean (true / false)
コントロール(Next, Prev)を表示するかどうか
true
autoControls boolean (true / false)
true の場合 Stop, Start のコントロールが表示される
false
autoControlsCombine boolean (true / false)
true の場合スライドが実行されていれば Stop のみが表示され、停止しているときは Start のみが表示される
false
auto boolean (true / false)
自動的に開始するかどうか
false
pause integer スライドの間隔(ミリ秒で指定) 4000
autoStart boolean (true / false)
スタートボタンを押してからスライドするか、しないか。trueで自動スタート。
true
autoHover boolean (true / false)
true の場合、スライダーにマウスオーバーすると一時停止する
false
minSlides integer(整数)
カルーセル表示の際に表示するスライドの最低数
1
maxSlides integer(整数)
カルーセル表示の際に表示するスライドの最大数
1
slideWidth integer(整数)カルーセル表示の際のそれぞれのスライドの幅(ピクセル) 0

css

スタイルシートはサイトに合わせて調整してください。
[css]
#slide{
clear: both;
margin: 0 auto;
overflow: hidden;
width: 100%;
}
#slide .bx-wrapper{
max-width: 960px!important;
margin: 0 auto!important;
position: relative;
}
#slide .bx-wrapper .bx-viewport{
overflow: visible!important;
}
#slide .bx-wrapper .bx-controls-direction a{
position: absolute;
text-indent: -9999px;
}
#slide .bx-wrapper .bx-controls-direction a.bx-prev{
left: 50%;
top: 50%;
width: 50px;
height: 50px;
margin-left: -50%;
margin-top: -25px;
background: url(../img/slide_prev_btn.png) no-repeat left top;
}
#slide .bx-wrapper .bx-controls-direction a.bx-next{
right: 0%;
top: 50%;
width: 50px;
height: 50px;
margin-left: 45.750%;
margin-top: -20px;
background: url(../img/slide_next_btn.png) no-repeat left top;
}
#slide .bx-pager{
position: absolute;
top: 90%;
text-align: center;
display: inline-block;
}
[/css]

html

[html]
<div id="slide">
<ul>
<li><img src="./img/img01.jpg" alt="スライド1" /></li>
<li><img src="./img/img02.jpg" alt="スライド2" /></li>
<li><img src="./img/img03.jpg" alt="スライド3" /></li>
<li><img src="./img/img04.jpg" alt="スライド4" /></li>
<li><img src="./img/img05.jpg" alt="スライド5" /></li>
</ul>
</div>
[/html]

こちらにデモを作成いたしました。
http://fjri.webcrow.jp/javascript/bxslider/

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です