Jssor playTo()在循环旋转木马中

时间:2014-11-09 12:24:44

标签: javascript jssor

我对Jssor的playTo()方法有一个简单的问题。我有一个循环播放多个图像的旋转木马。我使用playTo()方法,以便将点击的图像移动到轮播的中心。

然而,这有一个问题。当从“新一批”图像中点击图像时(即最后一个图像之后的图像,当循环再次开始时),轮播将倒带而不是选择最短路径。

例如,我单击右侧的一个图像(实际上是第一个在循环中再次加载),playTo()方法将轮播一直倒回到开始(图像原始位置所在的位置)而不是只需向右移动一步即可。

next()和prev()方法正常工作。加载最后一个图像并调用next()时,轮播只需向右移动一步。如果我使用了playTo(),旋转木马会反过来一直回到第一张图像。

我在文档或堆栈溢出中找不到任何相关内容。有没有办法强制playTo()将轮播移动到所选幻灯片的最近实例(倒带或前进到下一循环中的位置)?如果没有,这将是一个受欢迎的功能,因为它似乎是非常合乎逻辑的行为。

提前致谢!

1 个答案:

答案 0 :(得分:1)

请比较手动去的距离。

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);