2016-11-08 44 views
1

基本上我想通過設置從0到100%的寬度來設置動畫Bootstrap的進度條。唯一的問題是它只能在第一次嘗試中起作用。我希望它在單擊相同的元素後再次顯示動畫。Reanimate Bootstrap的進度條onclick

HTML

<div class='progress progress-striped active'> 
    <div class='progress-bar progress-bar-success'></div> 
</div> 

<button class='play'>Animate from 0 to 100%</button> 

JS

$('.play').on('click', function(){ 
    $(".progress-bar").animate({ 
    width: "100%" 
}, 500); 

}) 

CSS

.progress {height:18px} 
.progress-bar {width:0} 
.progress-bar {background-color: #5fb1e2} 

JSFiddle

回答

0

試試吧

var p ; 
$('.play').on('click', function(){ 
if (p) { 
    p.prependTo("body"); 
    p = null; 
    } 
    $(".progress-bar").css('width', 0); 
    $(".progress-bar").stop().animate({ 
    width: "100%" 
    }, 500, function() { 
     setTimeout(function() { 
      p = $(".progress").detach(); 
      console.log(p); 
     }, 1000) 

    }); 
    }); 

Fiddle

+0

感謝您的回覆。除非在進度條達到100之前點擊該按鈕,否則所有內容都可以正常工作,它會消失並停止工作。 – WebDev

+0

https://jsfiddle.net/9abm0hhy/597/ –

+0

已更新的答案,請檢查您是否對我的答案感到滿意並接受並向上投票。 –