如何在点击时暂停进度栏?

时间:2019-06-27 14:53:50

标签: javascript

所以我已经设置了带有进度条的基本音频播放器。

到目前为止,我有一个播放按钮,该按钮可开始和移动小节,但是我想在单击“暂停”时停止进度,而在再次按下“播放”时恢复播放。它的功能是什么?

我的JS知识非常基础,所以我在W3schools上发现了这一点

function move() {
    var elem = document.getElementById("myBar");   
    var width = 1;
    var id = setInterval(frame, 100);
    function frame() {
    if (width >= 100) {
        clearInterval(id);
    } else {
        width++; 
        elem.style.width = width + '%'; 
    }
    }
}
#myProgress {
    width: 100%;
    background-color: #ddd;
}

#myBar {
    width: 1%;
    height: 30px;
    background-color: #4CAF50;
}
<h1>JavaScript Progress Bar</h1>

<div id="myProgress">
    <div id="myBar"></div>
</div>

<br>
<button onclick="move()">Play</button> 
<button>Pause</button> 

1 个答案:

答案 0 :(得分:3)

您正在搜索clearInterval()。要保持进度条状态,请确保还具有全局定义的宽度。如果您在函数中定义宽度,它将始终返回到1。

var interval;
var width = 1;

function move() {
  var elem = document.getElementById("myBar");
 
  clearInterval(interval);
  interval = setInterval(frame, 100);

  function frame() {
    if (width >= 100) {
      width = 1;
      clearInterval(interval);
    } else {
      width++;
      elem.style.width = width + '%';
    }
  }
}

function pause() {
  clearInterval(interval);
}
#myProgress {
  width: 100%;
  background-color: #ddd;
}

#myBar {
  width: 1%;
  height: 30px;
  background-color: #4CAF50;
}
<h1>JavaScript Progress Bar</h1>

<div id="myProgress">
  <div id="myBar"></div>
</div>

<br>
<button onclick="move()">Play</button>
<button onclick="pause()">Pause</button>