【发布时间】:2019-04-09 19:15:50
【问题描述】:
在昨天之前,我真的从来没有用 Javascript 写过任何东西。我在这方面是全新的。我在 excel 中编写了宏,但我对计算机非常熟悉。我正在尝试编写一个程序,以便可以在浏览器中打开一个带有按钮的 HTML 文件。当我按下按钮时,我希望它从一个随机数开始倒计时,然后当倒计时结束时,它会发出哔声并从项目列表中随机选择一个文本。
我已经完成了大部分工作(记住这是我的第一个程序),但我想加入一个功能,让我可以暂停计时器,以便稍后恢复。我在这里包含了一些有效的数字,但这只是测试。
我一直在网上查看其他“暂停和恢复”风格的问题,但我有点困惑。这对我来说超级新鲜。
到目前为止,这是我的程序....
<html>
<body>
<h2>Javascript CART breakdown calculator</h2>
<p id="demo"></p>
<p id="breakdown_item"></p>
<button onclick="setTimeout(myFunction, my_random_number*1000);">start timer</button>
<script>
var my_random_number, low, high;
low = 1;
high = 5;
my_random_number = Math.floor(Math.random() * high) + low;
document.getElementById("demo").innerHTML = my_random_number;
var audioCtx = new (window.AudioContext || window.webkitAudioContext)();
function myFunction(frequency, duration, callback) {
duration = 10000 / 1000; // the 10000 used to be 'duration'
// create Oscillator node
var oscillator = audioCtx.createOscillator();
oscillator.type = 'square';
oscillator.frequency.value = 500; // value in hertz
oscillator.connect(audioCtx.destination);
oscillator.onended = callback;
oscillator.start(0);
oscillator.stop(audioCtx.currentTime + duration);
var random_breakdown_event, low_event, high_event;
low_event = 1
high_event = 9
random_breakdown_event = Math.floor(Math.random() * high_event) + low_event;
var text
if (random_breakdown_event == 1) text = "blown engine";
if (random_breakdown_event == 2) text = "broken transmission";
if (random_breakdown_event == 3) text = "broken suspension";
if (random_breakdown_event == 4) text = "broken halfshaft";
if (random_breakdown_event == 5) text = "broken cv joint";
if (random_breakdown_event == 6) text = "broken wings";
if (random_breakdown_event == 7) text = "electrical misfire";
if (random_breakdown_event == 8) text = "broken fuel pump";
if (random_breakdown_event == 9) text = "change battery";
document.getElementById("breakdown_item").innerHTML = text
}
</script>
</body>
</html>
我想加入一种方法来让这个计时器暂停和恢复。
【问题讨论】:
-
我打算用这个试试别的,但我还是卡住了。
标签: javascript button settimeout resume pause