Анимирование ширины полосы запуска Bootstrap с помощью jQuery

Я хочу анимировать ширину полосы выполнения от 0% до 70% за 2,5 секунды. Однако нижеприведенный код немедленно меняет ширину до 70% после задержки на 2,5 секунды. Что мне не хватает?

$(".progress-bar").animate({
    width: "70%"
}, 2500);

JSFiddle: http://jsfiddle.net/WEYKL/

Ответы

Ответ 1

Проблема заключается в эффекте перехода Bootstrap по умолчанию, который анимирует любое обновление свойства width.

Если вы отключите его с подавлением соответствующего стиля, он будет работать нормально, например:

.progress-bar {
    -webkit-transition: none !important;
    transition: none !important;
}

DEMO: http://jsfiddle.net/WEYKL/1/

Ответ 2

Итак, имеет смысл настроить эффект перехода через CSS или jQuery.

.progress-bar {
    -webkit-transition: width 2.5s ease;
    transition: width 2.5s ease;
}

И просто измените значение ширины.

$(".progress-bar").css('width', '70%');

Ответ 3

IT очень ЛЕГКО, если используется индикатор выполнения bootstrap,

добавьте атрибут aria-valuenow = "percent_required%" в div с классом "progress-bar" следующим образом:

<div class="progress-bar progress-bar-success" role="progressbar" aria-valuenow="57%" aria-valuemin="0" aria-valuemax="57">

Далее, на script:

<script>
  $(document).on('ready',function(){
    $('.progress .progress-bar').css("width",function() {
      return $(this).attr("aria-valuenow") + "%";
    })
  })
</script>

Reload, Go!