如何动态更改 progressbarjs 运行时

How to dynamically change progressbarjs runtime

请帮我实现一件事。

我在滑块下创建了一个简单的 progressbar.js 行。每张幻灯片都有不同的值(以秒为单位计时),应传递给进度条持续时间。

我使用“.slick-current”获取当前计时值,但值在 var bar 中不会动态变化。我只得到页面加载时收到的第一个值...

  var bar = new ProgressBar.Line("#ProgressBar", {
  strokeWidth: 3,
  easing: 'easeInOut',
  color: '#fff',
  trailColor: '#000',
  trailWidth: 1, 
    duration: n, // should dynamically change
    warnings: false, 
    svgStyle: {width: '100%', height: '100%'}

});

请看例子:jsfiddle

I take current timing value with ".slick-current" but value doesn't dynamically change

var d = $('.slider .slick-current span').text();
var n = d * 1000;

这些是 "simple types" - 字符串和整数。它们不动态绑定到 .slick-current span 的值 - 它们设置一次并保持该值。

您需要在使用之前更新这些值。

$(".slick-next, .slick-prev").click(function() {

  d = $('.slider .slick-current span').text();
  n = d * 1000;

  $(document.body).append('timer: ' + d + 'ms');
  bar.set(0);
  bar.animate(1, {
    duration: n

  }, function() {

    $('.slick-next').click();
    $(document.body).append('timer: ' + d + 'ms');
  });

});

已更新 fiddle:http://jsfiddle.net/oue8sgq6/