Перемещайте миниатюры моего слайдера, когда появляется новый слайд - PullRequest
0 голосов
/ 10 февраля 2011

Сценарий: слайдер jQuery Cycle: http://jquery.malsup.com/cycle/

Я использую следующий код, чтобы переместить контейнер миниатюр ползунка влево на «130px» как раз перед тем, как появится следующий слайд. Тогда маржа сбрасывается на «0px», когда достигнут последний слайд. Это хорошо работает, однако контейнер не сдвигается до третьего слайда.

Это код, который я использую:

function onBefore(currElement, nextElement, opts, isFoward) {
    var currentslide = opts.currSlide + 1; 
    if(currentslide == opts.slideCount) {
        jQuery(".slider-nav").animate({marginLeft: '0'});
    } else if(currentslide > 1 && currentslide != opts.slideCount) {
        jQuery(".slider-nav").animate({marginLeft: '-=133'});
    }           
}

Как мне сместить его, как только появится второй слайд. Примечание. Замена «> 1» в приведенном выше коде на «> 0» смещает контейнер, как только страница загружается.

1 Ответ

0 голосов
/ 10 февраля 2011

Я не уверен в контексте, в котором эта функция вызывается.Но я думаю, вам нужен следующий код:

function onBefore(currElement, nextElement, opts, isFoward) {
      if(opts.currSlide == opts.slideCount) {
         jQuery(".slider-nav").animate({marginLeft: '0'});
     } else { 
         jQuery(".slider-nav").animate({marginLeft: '-=133'});
     }
}

Если это не сработает, это может быть потому, что ваш первый слайд (slideCount = 0) вместо (slideCount = 1)Если это так, измените тест IF на:

      if(opts.currSlide == (opts.slideCount - 1)) {

С уважением, Нил

...