首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bxslider中指定不同的幻灯片延迟

如何在bxslider中指定不同的幻灯片延迟
EN

Stack Overflow用户
提问于 2013-07-01 23:24:46
回答 3查看 6.1K关注 0票数 0

在bxslider中遇到了以下问题-如何在车展中的幻灯片之间应用不同的延迟?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-01 23:24:46

我想出了以下解决方案,我将在这里展示:

在jquery.bxslider.js replace中:

代码语言:javascript
复制
 el.startAuto = function(preventControlUpdate){
        // if an interval already exists, disregard call
        if(slider.interval) return;
        // create an interval
        slider.interval = setInterval(function(){
            slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
        }, slider.settings.pause);
        // if auto controls are displayed and preventControlUpdate is not true
        if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop');
    }

使用

代码语言:javascript
复制
     /**EDITS: By CRB - techdude **/
    el.startAuto = function(preventControlUpdate){
        el.continueAuto();
    }

    el.continueAuto = function(){
        //get how long the current slide should stay
        var duration = slider.children.eq(parseInt(slider.active.index)).attr("duration");
        if(duration == ""){
            duration = slider.settings.pause;
        } else {
            duration = parseInt(duration);
        }
        console.log(duration);

        // create a timeout
        slider.timer = setTimeout(function(){
            slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
            el.continueAuto();
        }, duration);
        // if auto controls are displayed and preventControlUpdate is not true
        if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop');

    }

    //*End Edits*/

然后,要更改幻灯片的持续时间,只需给它的li标记一个类似如下的duration属性:其中duration是幻灯片暂停的毫秒数。

要设置默认持续时间,只需使用设置中的pause:选项:

代码语言:javascript
复制
$("element").bxSlider({
  auto:true,
  pause: 4000
};

希望这能有所帮助。也许bx slider甚至会把它添加到未来的版本中。:)

票数 2
EN

Stack Overflow用户

发布于 2013-09-26 10:22:04

什么是

你要用

  • 来拿这个吗?有没有办法证明它的工作原理?--
票数 0
EN

Stack Overflow用户

发布于 2014-03-29 22:51:14

也许这将有助于澄清:原则上,其工作方式是使用setTimeout更改setInterval,以便每次都可以更改间隔。

让多个元素在一个页面上工作的关键是不使用slider.timer对象,而可能是使用el.timer对象,这样一行就会读作如下所示:

代码语言:javascript
复制
 el.timer = setTimeout(function(){
        slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
        el.continueAuto();
    }, duration);

而不是

代码语言:javascript
复制
 slider.timer = setTimeout(function(){
        slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
        el.continueAuto();
    }, duration);

我还没有用多个滑块测试过它,但请让我知道这是否有效。无论如何,这就是原则。然而,这样做的唯一问题是,我认为您也需要修改el.pause方法才能使用el.timer,否则幻灯片无法暂停。我想这就是我为什么这么做的原因。然而,那是很久以前的事了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17408118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档