试图阻止bootstrap轮播在悬停时暂停

时间:2016-11-18 16:18:33

标签: javascript jquery twitter-bootstrap progress-bar carousel

我有一个带有进度条的自举旋转木马,它会填满并触发下一张幻灯片。我的问题是,当我将鼠标悬停在幻灯片上并且我希望它不会暂停并继续前进时,旋转木马会暂停。

这是我的代码:

$(document).ready(function(){
    var percent = 0,
    interval =35//it takes about 6s, interval=20 takes about 4s
    $bar = $('#progress-bar'),
    $crsl = $('#carousel-hero');
    $('.carousel-indicators li, .carousel-control').click(function (){$bar.css({width:0.5+'%'});});
    /*line above just for showing when controls are clicked the bar goes to 0.5% to make more friendly, 
    if you want when clicked set bar empty, change on width:0.5 to width:0*/
    $crsl.carousel({//initialize
        interval: false,
        pause: false
    }).on('slide.bs.carousel', function (){percent = 0;});//This event fires immediately when the bootstrap slide instance method is invoked.
    function progressBarCarousel() {
        $bar.css({width:percent+'%'});
        percent = percent +0.5;
        if (percent>=100) {
            percent=0;
            $crsl.carousel('next');
        }
    }
    var barInterval = setInterval(progressBarCarousel, interval);//set interval to progressBarCarousel function
    if (!(/Mobi/.test(navigator.userAgent))) {//tests if it isn't mobile
        $crsl.hover(function(){
                    clearInterval(barInterval);
                },
                function(){
                    barInterval = setInterval(progressBarCarousel, interval);
                }
        );
    }
});

我的HTML:

 <div id="carousel-hero" class="carousel slide" data-ride="carousel"><!-- Main Slider -->
              <ol class="carousel-indicators">
                <li data-target="#carousel-hero" data-slide-to="0" class="active"></li>
                <li data-target="#carousel-hero" data-slide-to="1"></li>
                <li data-target="#carousel-hero" data-slide-to="2"></li>
              </ol>
            <div class="carousel-inner">
                <div class="item active"><!-- First Slide -->
                    <div class="overlay"></div>
                    <img src="images/hero1.jpg" alt="hero-image" class="img-responsive">
                    <div class="carousel-caption"><!-- Tagline -->
                        <h1 class="tagline">WE ARE <span class="colored">NIXO</span> CREATIVE</h1>
                        <h5>Branding | Design | Developement</h5>
                    </div>
                </div>          
                <div class="item"><!-- Second Slide -->
                    <div class="overlay"></div>
                    <img src="images/hero2.jpg" alt="hero-image" class="img-responsive">
                    <div class="carousel-caption"><!-- Tagline -->
                        <h1 class="tagline">WE <span class="colored">ALWAYS</span> DELIVER</h1>
                        <h5>UX | Marketing | Ideas</h5>
                    </div>
                </div>
                <div class="item"><!-- Third Slide -->
                    <div class="overlay"></div>
                    <img src="images/hero3.jpg" alt="hero-image" class="img-responsive">
                    <div class="carousel-caption"><!-- Tagline -->
                        <h1 class="tagline">WE <span class="colored">LOVE</span> DESIGN</h1>
                        <h5>Beautiful | Clean | Inspiring</h5>
                    </div>
                </div>
                <!-- Carousel Controlls -->
               <a id="hero-control-left" class="control-hero control-left" href="#carousel-hero" role="button" data-slide="prev">
                   <span class="pe-7s-angle-left pe-4x" aria-hidden="true"></span>
                   <span class="sr-only">Previous</span>
                </a>
                <a id="hero-control-right" class="control-hero control-right" href="#carousel-hero" role="button" data-slide="next">
                    <span class="pe-7s-angle-right pe-4x" aria-hidden="true"></span>
                    <span class="sr-only">Next</span>
                </a>
            </div>
            <div id="progress-bar"></div> <!-- Carousel Progress Bar -->
  </div>

我做过的事:

  • 在js文件设置中暂停:'none'
  • 将数据 - 暂停=“假”添加到轮播
  • 同时有puase:false和data-pause =“false”

任何帮助都是相关的。

2 个答案:

答案 0 :(得分:2)

将Pause设置为null,数据暂停=&#34; false&#34;

$crsl.carousel({//initialize
        interval: false,
        pause: null
 })

<div id="carousel-hero" class="carousel slide" data-ride="carousel" data-pause="null">

详细了解旋转木马选项

https://v4-alpha.getbootstrap.com/components/carousel/#options

为避免进度条停止,请删除crsl.hover的代码,该代码清除进度条的间隔并在模糊时重新启动。

工作示例:https://jsfiddle.net/ne9x9Lp1/

答案 1 :(得分:0)

我有同样的问题。只需通过更改bootstrap js文件(在我的情况下为bootstrap.bundle.min.js)即可解决

ctrl + f =暂停使其易于查找,它已暂停:“悬停”,我将其更改为:

暂停:“假”

希望这会有所帮助。