如何在初始绑定后更改每个bx-Slider幻灯片之间的时间?

时间:2016-05-12 07:28:00

标签: javascript jquery bxslider

在我的页面上,我有几个bx滑块。它们的设置如下:

$('#bxslider1').bxSlider({
                auto: true,
                mode: 'fade',
                speed: 2000,
                slideMargin: 160,
                pause: Math.floor((Math.random() * 5000) + 1500)
            }); 

是否有可能为2000年的第一次更改设置滑块的暂停选项,但从这一点开始它应该是1500到5000之间的随机时间。所以有没有办法在第一次更改后更改暂停选项滑动/淡出?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我不认为bx Slider有这种类型的支持,这是一个可行的解决方案。它没有经过测试,但可能会指向正确的方向:

<强> JAVASCRIPT:

    function Timer(timeout) { //timer function to keep track of slide speed.
        var self = this;
        var time = 0;
        this.interval = timeout ? timeout : 1000;   // Default

        this.run = function (runnable) {
            interval = setInterval(function () { runnable(self); time += 1; }, this.interval);
        };

        var pauseCalc = Math.floor((Math.random() * 5000) + 1500); //You can do your pause calculations here

        if ($('#bxslider1').length > 0 && time == 0) { // Check if the contol exists and time == 0
            $('#bxslider1').bxSlider({
                auto: true,
                mode: 'fade',
                speed: 2000,
                slideMargin: 160,
                pause: pauseCalc // original pause
            }); 
        } else if (time == 2) {
            $('#bxslider1').unbind(); // Unbind the control first then re-bind
            $('#bxslider1').bxSlider({
                auto: true,
                mode: 'fade',
                speed: 2000,
                slideMargin: 160,
            pause: pauseCalc //Add new pause after 2 sec
        }); 

        clearInterval(interval); //Stop the timer;
    }
    clearInterval(this.interval);
}
//invoke the timer
Timer.run(1000);