У меня есть галерея изображений, которая отлично работает. Когда достигнут последний слайд, галерея изображений просто перетасовывается назад к первому изображению.Отключение кнопки «Далее» или «Предыдущая»?
Теперь, что я хочу знать, как я могу отключить следующее или предыдущее изображение при достижении последнего/первого изображения? Мой код ...
Slider Скрипт
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>
Slider Initiation
<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');
}
Но безрезультатно. Я тоже это сделал, и до сих пор не придумал ничего, что сработало.
В случае, если вам нужно баловаться с, heres jsFiddle его (игнорировать тот факт, что изображение оленьей кожи скользит автоматически, это происходит из-за Ли, имеющую границу!)
Почему вы хотите отключить следующую кнопку в конце? Не будет ли прокрутка до начала предпочтительным вариантом? – davethegr8
@ davethegr8 Я делаю то, что меня спрашивают! :) –