如何让JCarousel垂直滚动条反向滚动?

发布于 2024-09-01 06:37:01 字数 371 浏览 10 评论 0原文

我能够使用 jQuery Jcarousel 实例化一个工作滚动器,但我需要它来反向滚动。例如,现在我有:

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

我需要做什么才能使项目向上而不是向下滚动?

先感谢您

I was able to instantiate a working scroller using jQuery Jcarousel however I need it to reverse scroll. For example right now I have:

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

What do I need to do to make the items scroll upwards instead of downwards?

Thank You in advance

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

隱形的亼 2024-09-08 06:37:01

事实上,事情比这更简单。

scroll: -1

干杯!

actually, it's more simple than that.

scroll: -1

cheers!

天暗了我发光 2024-09-08 06:37:01

尽管您可以很容易地对其进行编码,但反向自动滚动尚未实现。

这是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() 应该可以解决问题(现在无法测试,如果您这样做,请发布结果)。

祝你好运 :)

Reverse autoscrolling is not implemented yet although you can code it quite easily.

This is the autoscrolling function in 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);
    },

(Lines 687 to 706 in jquery.carousel.js )

Changing self.next(); to self.prev() should to the trick (can't test it right now, if you do please post the results).

Good luck :)

萌逼全场 2024-09-08 06:37:01

只是将其添加到 XaviEsteve 答案中(无论如何我都找不到在他的答案中添加评论的地方)。

一旦我将 self.next() 更改为 self.prev(),我必须将“wrap”选项更改为“both”以使其对我有用,如下所示。

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

Just to add this to XaviEsteve answer (I can't find a place to add comment to his answer anyway).

Once I've changed self.next() to self.prev(), I have to change 'wrap' option to 'both' to make it work for me, like this.

jQuery('#mycarousel').jcarousel({
        auto: 1,
        wrap: 'both',
        vertical: true, 
        scroll: 1,
        start: 30,
        initCallback: mycarousel_initCallback
    });
痕至 2024-09-08 06:37:01

试试这个,应该有效

$(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
  });
});

Try this, it should work

$(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
  });
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文