Jquery Nivo Slider为每张幻灯片设置延迟时间

时间:2012-11-09 20:57:14

标签: jquery nivo-slider

我们正在使用一种特殊系统,允许我们的用户在幻灯片之间设置延迟以及图像是否包含链接。我们使用mootools进行幻灯片放映,但希望更新到nivoSlider。

php脚本根据我们旧的系统要求导出以下内容

var data = {
'0225201274127_1.jpg': {delay:4000},
'0225201274417_4.jpg': {delay:3000},
'0225201274624_9.jpg': {delay:5000},
'0225201274607_8.jpg': {delay:3000},
'0225201274456_6.jpg': {delay:6000},
'0225201274521_7.jpg': {delay:7000},
'0225201274435_5.jpg': {delay:3000},
'0225201274338_2.jpg': {delay:2000},
'0225201274647_10.jpg': {delay:1000},
'0225201274359_3.jpg': {delay:6000},
'0225201274707_11.jpg': {delay:4000}
};

我只是在寻找一种方法来将幻灯片中的各个图像设置为上面的延迟。

如果需要,我可以重新配置输出。我们整天都在尝试不同的方法而没有成功。

1 个答案:

答案 0 :(得分:2)

我正在使用带有'afterLoad'的数组,它运行良好。

  var delays = [4000,3000,5000,3000]; //your delay array

    function pageLoad() {
        $(function () {
            $('#slider').nivoSlider({
                pauseTime: 50000,
                directionNav: true,
                afterChange: function () { setDelay() },
                afterLoad: function () { setDelay() },
                controlNav: true,
                pauseOnHover: false
            });
        });
    }

    function setDelay() {
        var currentSlide = $('#slider').data("nivo:vars").currentSlide;
        setTimeout(function () {
            $('#slider').find('a.nivo-nextNav').click()
        }, delays[currentSlide]);

    }
希望这会有所帮助。你的html的其余部分是标准的nivo布局