Jssor在环形旋转木马中播放To()

Jssor playTo() in looped carousel

本文关键字:播放 To 旋转木马 Jssor      更新时间:2023-09-26

Jssor的playTo()方法有一个简单的问题。我有一个循环播放多个图像的转盘。我使用playTo()方法,这样点击的图像就会移动到旋转木马的中心。

然而,这有一个问题。当从"新一批"图像中单击和图像时(即,当循环再次开始时,最后一批图像之后的图像),转盘将倒退,而不是选择最短的路线。

例如,我单击右侧的一个图像(这实际上是循环中第一个再次加载的图像),playTo()方法将转盘一直倒带到开始(图像的原始位置),而不是简单地向右移动一步。

next()和prev()方法工作正常。当加载最后一个图像并调用next()时,转盘只需向右移动一步。如果我使用playTo(),旋转木马将一直倒退到第一个图像。

我在文档或堆栈溢出中找不到任何关于这方面的信息。是否有一种方法可以强制playTo()将转盘移动到所选幻灯片的最近实例(在下一个循环中倒退或前进到其位置)?如果没有,这将是一个受欢迎的功能,因为这似乎是非常合乎逻辑的行为。

提前感谢!

请手动比较要走的距离。

var targetIndex = yourIndex; //yourIndex is the index that you determined to go according to the image clicked.
var currentIndex = jssor_slider1.$CurrentIndex();
var slidesCount = jssor_slider1.$SlidesCount();
if(targetIndex < currentIndex) {
    if(currentIndex - targetIndex > slidesCount - currentIndex) {
        targetIndex += slidesCount;
    }
}
else {
    if(targetIndex - currentIndex > slidesCount - currentIndex) {
        targetIndex -= slidesCount;
    }
}
jssor_slider1.$PlayTo(targetIndex);