Bootstrap旋转木马的进度条

时间:2014-01-26 14:24:45

标签: jquery css twitter-bootstrap-3 carousel

我正在使用Bootstrap 3轮播。我不想拥有控件或指示器,但我想要一个进度条。 当悬停时,进度条也会暂停。 下面是我的代码:

$(function() {   

   $('.carousel').carousel({
      interval: 2000,
       pause: 'hover'
   });        

   var counter =0;   
    setInterval(function() {
      counter = (counter + 1) % 100;
      $(".progressbar").css("width", counter + "%");
   }, 20);

});


<div id="mycarousel" class="carousel slide">
    <!-- Carousel Indicators -->
    <ol class="carousel-indicators">
        <li class="active" data-target="#mycarousel" data-slide-to="0"></li>
        <li data-target="#mycarousel" data-slide-to="1"></li>
        <li data-target="#mycarousel" data-slide-to="2"></li>
    </ol>  

    <div class="carousel-inner">
        <div class="item active"><img src="http://flickholdr.com/300/100" /></div>
        <div class="item"><img src="http://flickholdr.com/300/100" /></div>
        <div class="item"><img src="http://flickholdr.com/300/100" /></div>
    </div>

    <div class="progressbar"></div>
</div>

我想要的是: http://jsfiddle.net/cfV6c/

line will be the progress bar

2 个答案:

答案 0 :(得分:2)

我有另一个解决方案,设置间隔并使旋转木马在100%

时滑动
$(function(){
var percent = 0, bar = $('.pg-carousel'), crsl = $('.carou-java');
function progressBarCarousel() {
  bar.css({width:percent+'%'});
  percent = percent +1;
  if (percent>100) {
    crsl.carousel('next');
    percent=100;
  }
}
var barInterval = setInterval(progressBarCarousel, 100);
crsl.carousel({
    interval: false,
    pause: false
}).on('slid.bs.carousel', function () {
    percent=0;
});
crsl.hover(
    function(){
        clearInterval(barInterval);
    },
    function(){
        barInterval = setInterval(progressBarCarousel, 100);
    })
});

答案 1 :(得分:1)

使用jsfiddle中的示例,我得到了一个有效的解决方案,但没有在悬停时暂停进度条。远非完美,但我希望它有所帮助:

$(function() {
  var counter = 0;
  var progressBar;

  function progressBarRun() {
    progressBar = setInterval(function() {
      counter += 1;
      if (counter > 100) clearInterval(progressBar);
      $(".progressbar").css("width", counter + "%");
    }, 20);
  }
  progressBarRun();

  $('#mycarousel').on('slid.bs.carousel', function () {
    counter = 0;
    clearInterval(progressBar);
    progressBarRun();
  });
});

您怎么看?