JQuery - 获取循环上一个/下一个触发jcarousel prev / next

时间:2012-02-21 14:00:28

标签: jquery cycle jcarousellite

我有循环播放幻灯片,幻灯片播放时会显示上一个/下一个图形。该循环还有一个垂直缩略图寻呼机。我将寻呼机包装在jCarousellite的自定义版本中,该版本在活动缩略图上放置.activeSlide类,并拥有自己的上一组/下一页链接。

总而言之,它运作良好,可以在这里看到:

http://www.spiritlevel.co.uk/cycletest/cycle_test.html

然而,我有最后一个障碍......

当点击幻灯片上的上一个/下一个图形时,我想检查新的.activeSlide是否在旋转木马中可见,如果没有,那就这样做......我真的可以帮忙。

举个例子,当你点击我上面的链接时,你会看到轮播中有8个缩略图。缩略图1处于活动状态。如果我单击幻灯片上的下一个图形,缩略图2将变为活动状态。再次单击,缩略图3变为活动状态等等。直到我点击第8次并且缩略图9变为活动状态一直很好 - 然后问题是缩略图9在轮播中不可见 - 所以在这一点上我想要一些代码激活将触发旋转木马并使缩略图9可见。 (触发轮播上的下一个链接可以在这种情况下工作)

该解决方案还需要处理页面加载和用户立即单击幻灯片上的prev图形的情况 - 显示最后一张幻灯片。触发旋转木马上的prev链接在这里不起作用 - 而是必须多次触发下一个链接才能使活动缩略图可见。

我希望我已经清楚了 - 实际上很难解释我想要发生什么,但我认为当你点击我上面的链接时会很明显 - 更容易看到而不是描述!

我真的希望最后一点工作,并希望你能给予任何帮助。

感谢

1 个答案:

答案 0 :(得分:2)

也许 ...

// When clicking the cycle arrows
$('#slidecontrol a').click(function () {
    var activeSlide = $('div.jcarousellite li.activeSlide');

    // If the "activeSlide" in the jcarousel is not already visible
    if (!activeSlide.is(':visible')) {
        // If there are items ABOVE the active slide that are visible we need to go down
        if (activeSlide.prevAll('li:visible').length) {
            var clicker = $('div.nextlite').find('a');
        }
        // Else we need to go up
        else {
            var clicker = $('div.prevlite').find('a');
        }

        // Keep clicking untill it's visible
        while (!activeSlide.is(':visible')) {
            clicker.click();
        }
    }
});