Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript I';我对setInterval()有些问题_Javascript - Fatal编程技术网

Javascript I';我对setInterval()有些问题

Javascript I';我对setInterval()有些问题,javascript,Javascript,我想要我的秒表,就好像完成了60秒。再次从0开始应该有一个以分钟和秒为单位的增量。我尝试了很多方法,但是当时间只有一分钟的时候,它总是停止工作。。它是setInterval()中的内置问题吗 这个方法对你有用吗 timer () { let seconds = 0; const tick = () => { this.timerText.textContent = seconds; this.timerSecond.textContent = `${seconds

我想要我的秒表,就好像完成了60秒。再次从0开始应该有一个以分钟和秒为单位的增量。我尝试了很多方法,但是当时间只有一分钟的时候,它总是停止工作。。它是
setInterval()中的内置问题吗


这个方法对你有用吗

timer () {
  let seconds = 0;

  const tick = () => {
    this.timerText.textContent = seconds;
    this.timerSecond.textContent = `${seconds % 60}`.padStart(2, '0');
    this.timerMinute.textContent = Math.floor(seconds / 60);
    seconds++;
  };

  tick();
  return setInterval(tick, 1000);
}
很难说为什么有两个单独的
setInterval()
调用,但我删除了每100毫秒调用一次的调用,并将逻辑组合成一个

timerSecond
使用
seconds
的模60,
timerMite
使用整数除以60的结果,而
timerText
只直接接收
seconds
,就像在初始代码中一样

async
关键字没有给代码增加任何价值,因为它没有使用承诺,所以我删除了它

下面是一个稍微详细说明的示例来演示功能:

class秒表{
timerText=document.querySelector('.text');
timerSecond=document.querySelector('.second');
timerMiute=document.querySelector('.minute');
计时器(){
设秒=0;
常数滴答=()=>{
this.timerText.textContent=秒;
this.timerSecond.textContent=`${seconds%60}`.padStart(2,'0');
this.timerMinute.textContent=Math.floor(秒/60);
秒++;
};
勾选();
返回设置间隔(刻度,1000);
}
}
新秒表()计时器()

:

这种方法对您有效吗

timer () {
  let seconds = 0;

  const tick = () => {
    this.timerText.textContent = seconds;
    this.timerSecond.textContent = `${seconds % 60}`.padStart(2, '0');
    this.timerMinute.textContent = Math.floor(seconds / 60);
    seconds++;
  };

  tick();
  return setInterval(tick, 1000);
}
很难说为什么有两个单独的
setInterval()
调用,但我删除了每100毫秒调用一次的调用,并将逻辑组合成一个

timerSecond
使用
seconds
的模60,
timerMite
使用整数除以60的结果,而
timerText
只直接接收
seconds
,就像在初始代码中一样

async
关键字没有给代码增加任何价值,因为它没有使用承诺,所以我删除了它

下面是一个稍微详细说明的示例来演示功能:

class秒表{
timerText=document.querySelector('.text');
timerSecond=document.querySelector('.second');
timerMiute=document.querySelector('.minute');
计时器(){
设秒=0;
常数滴答=()=>{
this.timerText.textContent=秒;
this.timerSecond.textContent=`${seconds%60}`.padStart(2,'0');
this.timerMinute.textContent=Math.floor(秒/60);
秒++;
};
勾选();
返回设置间隔(刻度,1000);
}
}
新秒表()计时器()

:

下面是一个基本示例,介绍如何制作从60(或任何其他数字)开始倒计时的计数器,并将其显示在页面上

//对保存计数的html元素的引用
const counterDiv=document.getElementById('counter');
//变量,该变量将跟踪要倒计时的秒数
const secondsToCount=60;
//将计数器的初始值设置为secondsToCount变量。
//计数器将每1000ms | 1s更新一次,并将进行更改
//到要从中倒计时的剩余秒数的值
//这就是为什么这个变量与常量相对
让计数器=秒计数;
//设置计数器html元素的初始文本
counterDiv.innerHTML=secondsToCount;
//这个函数将为我们计数。
常量间隔=设置间隔(()=>{
//将当前计数器值减1
计数器--;
//更新文本以显示计数器的新值
counterDiv.innerHTML=计数器;
//如果计数器为===0,则计数器已完成。她需要一些文本。
如果(计数器==0){
//清除间隔(否则,您将继续计数
//变成负数
间隔时间;
//显示完成的文本
counterDiv.innerHTML=`已完成从${secondsToCount}秒开始的倒计时';
}
},1000);/1000毫秒| 1秒

下面是一个基本示例,介绍如何制作从60(或任何其他数字)开始倒计时的计数器,并将其显示在页面上

//对保存计数的html元素的引用
const counterDiv=document.getElementById('counter');
//变量,该变量将跟踪要倒计时的秒数
const secondsToCount=60;
//将计数器的初始值设置为secondsToCount变量。
//计数器将每1000ms | 1s更新一次,并将进行更改
//到要从中倒计时的剩余秒数的值
//这就是为什么这个变量与常量相对
让计数器=秒计数;
//设置计数器html元素的初始文本
counterDiv.innerHTML=secondsToCount;
//这个函数将为我们计数。
常量间隔=设置间隔(()=>{
//将当前计数器值减1
计数器--;
//更新文本以显示计数器的新值
counterDiv.innerHTML=计数器;
//如果计数器为===0,则计数器已完成。她需要一些文本。
如果(计数器==0){
//清除间隔(否则,您将继续计数
//变成负数
间隔时间;
//显示完成的文本
counterDiv.innerHTML=`已完成从${secondsToCount}秒开始的倒计时';
}
},1000);/1000毫秒| 1秒

这很简单:

var秒=0;
setInterval(函数(){
勾选(document.getElementById(“计时器”),++秒);
}, 1000);
功能刻度(ele,secs){
ele.innerHTML=Math.floor(secs/60)+“:”+(secs%60<10?:”)+secs%60;
}

0:00
这很简单:

var秒=0;
setInterval(函数(){
勾选(document.getElementById(“计时器”),++秒);
}, 1000);
功能刻度(ele,secs){
ele.innerHTML=Math.floor(secs/60)+“:”+(secs%60<10?:”)+secs%60;
}

0:00
您的代码有问题。语法为inv