私は素晴らしい作品の画像ギャラリーを持っています。最後のスライドに達すると、画像ギャラリーは最初の画像に戻るだけです。'次へ'または '前'ボタンを無効にしますか?
私が知りたいことは、最後/最初の画像に達したときに、次の画像または前の画像をどのように無効にすることができるかです。私のコードです...
スライダースクリプト
function Slider(container, nav) {
this.container = container;
this.nav = nav.show();
this.imgs = this.container.find('img');
this.imgWidth = this.imgs[0].width;
this.imgsLen = this.imgs.length;
this.current = 0;
}
Slider.prototype.transition = function (coords) {
this.container.animate({
'margin-left': coords || -(this.current * this.imgWidth)
});
};
Slider.prototype.setCurrent = function(dir) {
var pos = this.current;
pos += (~~(dir === 'next') || -1);
this.current = (pos < 0 ) ? this.imgsLen - 1 : pos % this.imgsLen;
return pos;
};
HTML
<div class="slider">
<ul>
<li>
<img src="http://..../spacer.gif" height="400" />
</li>
<li>
<img src="http://..../spacer.gif" height="400" />
</li>
</ul>
</div>
<div id="slider-nav">
<button class="previous" data-dir="prev">Previous</button>
<button data-dir="next">Next</button>
</div>
スライダー開始
<script>
var container = $('div.slider').css('overflow', 'hidden').children('ul');
var slider = new Slider(container, $('#slider-nav'));
slider.nav.find('button').on('click', function() {
slider.setCurrent($(this).data('dir'));
slider.transition();
});
</script>
これはおそらく、スライダーの構築についてのおおまかなやり方だと私は理解していますが、私は長い間jQueryを使っていません。
私は..
if (this.current = this.imgsLen - 1) {
$(':button:contains("previous")').attr('disabled', 'disabled');
}
しかし、無駄の線に沿って何かをやってみました。私はこれも探偵して、まだ働いているものを思い付いていない。あなたは、約再生するには1、heresそれのjsFiddleを必要とする場合には
(これが原因で境界線を持つLiがあり、画像が自動的にスライドdoesntの事実を無視!)
最後に次のボタンを無効にしたいのはなぜですか?最初にスクロールするのが好ましい選択肢ではないでしょうか? – davethegr8
@ davethegr8私は何を求められているのですか? :) –