Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.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 .toggle()类名称的无限和不确定切换_Javascript_Html_Css - Fatal编程技术网

Javascript .toggle()类名称的无限和不确定切换

Javascript .toggle()类名称的无限和不确定切换,javascript,html,css,Javascript,Html,Css,我不明白为什么在使用动画切换类名时,.toggle()会出现问题。我做了这个实验: var query=document.querySelector.bind(文档); 查询('button')。addEventListener('click',函数(){ [].forEach.call(查询('.container')。子项,函数(框,i){ setInterval(函数(){ box.classList.toggle('popIn'); },300*i); }) }) .container

我不明白为什么在使用动画切换类名时,
.toggle()
会出现问题。我做了这个实验:

var query=document.querySelector.bind(文档);
查询('button')。addEventListener('click',函数(){
[].forEach.call(查询('.container')。子项,函数(框,i){
setInterval(函数(){
box.classList.toggle('popIn');
},300*i);
})
})
.container>.box{
宽度:100px;
高度:100px;
背景:青色;
显示:内联块;
变换:比例(0);
过渡:所有0.3秒的缓进缓出;
}
.container>.box.popIn{
变换:比例(1);
}
点击

您遇到的问题在setInterval函数中。您的意思是,每300毫秒执行一次此事件。您需要的是setTimeout,它告诉事件在300ms后停止。请参阅下面我所做更改的代码段

有关详细信息,请参阅 有关详细信息,请参阅

var query=document.querySelector.bind(文档);
查询('button')。addEventListener('click',函数(){
[].forEach.call(查询('.container')。子项,函数(框,i){
setTimeout(函数(){
box.classList.toggle('popIn');
},300*i);
})
})
.container>.box{
宽度:100px;
高度:100px;
背景:青色;
显示:内联块;
变换:比例(0);
过渡:所有0.3秒的缓进缓出;
}
.container>.box.popIn{
变换:比例(1);
}
点击

这是因为
setInterval()
使用
setTimeout
,而不是
setInterval
正常。非常感谢:)