Как сделать обратную прокрутку JCarousel Vertical Scroller?

Мне удалось создать рабочий скроллер с помощью jQuery Jcarousel, однако мне нужно, чтобы он прокручивался в обратном направлении. Например, сейчас у меня есть:

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        auto: 1,
        vertical: true,
        scroll: 1,
        animation: "slow",
        wrap: 'last',
        initCallback: mycarousel_initCallback
    }); 
});

Что мне нужно сделать, чтобы элементы прокручивались вверх, а не вниз?

Заранее спасибо


person jini    schedule 12.05.2010    source источник


Ответы (4)


Обратная автопрокрутка еще не реализована, хотя вы можете легко запрограммировать ее.

Это функция автопрокрутки в jCarousel:

/**
 * Starts autoscrolling.
 *
 * @method auto
 * @return undefined
 * @param s {Number} Seconds to periodically autoscroll the content.
 */
    startAuto: function(s) {
        if (s != undefined)
            this.options.auto = s;

        if (this.options.auto == 0)
            return this.stopAuto();

        if (this.timer != null)
            return;

        var self = this;
        this.timer = setTimeout(function() { self.next(); }, this.options.auto * 1000);
    },

(Строки с 687 по 706 в jquery.carousel.js )

Изменение self.next(); на self.prev() должно помочь (не могу проверить это прямо сейчас, если вы это сделаете, опубликуйте результаты).

Удачи :)

person Xavi Esteve    schedule 12.05.2010
comment
Большое спасибо за быстрый ответ. Я специально изменил строку # 705 на: this.timer = setTimeout(function() { self.prev(); }, this.options.auto * 1000); Теперь скроллер не прокручивается, и я не получаю никаких ошибок в Firebug. - person jini; 12.05.2010
comment
Ahhhhhhhh Мне пришлось специально использовать опцию «Пуск» и установить свой индекс вручную, так как он начинался с 1 и не имел ничего, к чему можно было бы вернуться. Спасибо еще раз! - person jini; 12.05.2010

на самом деле все проще.

scroll: -1

ваше здоровье!

person Matt Ryan    schedule 23.12.2010

Просто чтобы добавить это к ответу XaviEsteve (я все равно не могу найти место, чтобы добавить комментарий к его ответу).

После того, как я изменил self.next() на self.prev(), мне нужно изменить параметр «обернуть» на «оба», чтобы он работал на меня, вот так.

jQuery('#mycarousel').jcarousel({
        auto: 1,
        wrap: 'both',
        vertical: true, 
        scroll: 1,
        start: 30,
        initCallback: mycarousel_initCallback
    });
person Phyo Wai Win    schedule 13.08.2010

Попробуйте это, должно сработать

$(document).ready(function() {
    $('#mycarousel').jcarousel({
      vertical: true,
      wrap: 'circular',
      animate: 'slow',
    });  
    $('#mycarousel').jcarouselAutoscroll({
      interval: 3000,
      target: '-=1', /*if you change - on + it will scroll up*/
      autostart: true
  });
});
person user3198016    schedule 15.01.2014