2015-05-03 3 views
0

Here is the codeОстановить слайд при последнем слайде

Я создал пользовательский слайдер, используя jQuery.

Я хочу, чтобы он остановился на последнем слайде.

$(document).ready(function(){ 
    var slideCount = $('.billAddress .addressBlock').length 
    var outerWidth = slideCount * 273 
    $('.billAddressCnt').css({ 
    width: outerWidth, 
    left: 0 
    }) 
}) 

var i = 0; 
$('.nextBillAddress').click(function(){ 
    i++ 
    var leftMove = 273*i 
    $('.billAddressCnt').animate({ 
    left : -leftMove 
    }) 
}) 

ответ

2

Вы можете добавить sliderPosition переменные и уменьшить его каждый раз при перемещении ползунка. Когда он равен 0 или 1 (в зависимости от того, что вы хотите) - прекратите скольжение. Код будет как этот

$(document).ready(function(){ 
    var slideCount = $('.billAddress .addressBlock').length 
    var sliderPosition = slideCount 
    var outerWidth = slideCount * 273 
    $('.billAddressCnt').css({ 
     width: outerWidth, 
     left: 0 
    }) 
}) 

var i = 0; 
$('.nextBillAddress').click(function(){ 
    i++ 
    if (sliderPosition == 1) { 
     return false; 
    } 
    sliderPosition--; 
    var leftMove = 273*i 
    $('.billAddressCnt').animate({ 
     left : -leftMove 
    }) 
}) 

Существует также возможность делать вещи, используя более продвинутый способ, как создать объект бегунка, реализовать счетчик и ползунок там.

+0

Спасибо :) это работало – zik

+0

@zik, если этот фрагмент кода работает для вас, то пожалуйста, примите ответ :) – munjal

+0

@munjal Ваш код работает, но он вызывает обработчик события после последнего элемента достиг. лучший способ - удалить обработчик. –

0

отсоединить событие haandler, когда достигнет последнего div. добавьте эту строку в первую из ваших функций.

if(i + 1 === $('.addressBlock').length) $('.nextBillAddress').unbind("click", arguments.callee); 
Смежные вопросы