Javascript Div不';t对显示作出反应=无
我的目标是创建一个函数,它将在延迟后在同一位置交换4个div,这意味着 div“commission1”可见,因此在1秒后它将消失,div“commission2”将取代它的位置>1秒后消失>commission3>dissapears>commission4,并且它应该循环,但在我设法做到这一点之前,它已经不起作用了 我有意外的输入结束错误 我没有发现任何缺少符号或字母的地方,所以我不知道这个错误是怎么回事 请记住,这是我在休息4年后第一次使用java,那时我已经是初学者了:D 提前感谢:)Javascript Div不';t对显示作出反应=无,javascript,Javascript,我的目标是创建一个函数,它将在延迟后在同一位置交换4个div,这意味着 div“commission1”可见,因此在1秒后它将消失,div“commission2”将取代它的位置>1秒后消失>commission3>dissapears>commission4,并且它应该循环,但在我设法做到这一点之前,它已经不起作用了 我有意外的输入结束错误 我没有发现任何缺少符号或字母的地方,所以我不知道这个错误是怎么回事 请记住,这是我在休息4年后第一次使用java,那时我已经是初学者了:D 提前感谢:)
问题在于,您向
setTimeout
函数提供了一个字符串作为参数,而不是要执行的另一个函数。应该是这样的
setTimeout(function() {document.getElementById('foo').style.display = 'none'}, 1000);
此外,要避免重复(不要重复),即使用函数,而不是一次又一次地复制完全相同的代码。我提供了我对代码的理解
演示:
HTML
Javascript
function hide(id){
document.getElementById(id).className = "invisible";
}
function show(id){
document.getElementById(id).className = "visible";
}
function visibility(){
hide("commission4"); show("commission1");
setTimeout(() => { hide("commission1"); show("commission2") }, 1000);
setTimeout(() => { hide("commission2"); show("commission3") }, 2000);
setTimeout(() => { hide("commission3"); show("commission4") }, 3000);
setTimeout(() => { visibility() }, 4000);
}
visibility();
首先,要使用
style.display
显示元素,应执行element.style.display='block'
(或其他有效的显示值,如内联块
)。我认为display
不是一个有效的css显示值
至于你试图实现的总体目标,我将这样做:
const MAX=4;
常数超时=1000;
函数fn(n){
如果(n>MAX | | n<0){
n=1;
}
对于(设i=1;我并不是我见过的最漂亮的代码,但为了帮助您跟踪错误,您可以计算开始和结束{
,}
请注意数字不匹配。谢谢!您帮助了我很多,并提醒了我一些事情。这将是我了解更多信息的基础。@KrzysztofOrczyk请看一下我的编程笔记()。我相信您会找到一些东西。:)
<div id="commission1" class="invisible">1</div>
<div id="commission2" class="invisible">2</div>
<div id="commission3" class="invisible">3</div>
<div id="commission4" class="invisible">4</div>
.visible {display: block;}
.invisible {display: none;}
function hide(id){
document.getElementById(id).className = "invisible";
}
function show(id){
document.getElementById(id).className = "visible";
}
function visibility(){
hide("commission4"); show("commission1");
setTimeout(() => { hide("commission1"); show("commission2") }, 1000);
setTimeout(() => { hide("commission2"); show("commission3") }, 2000);
setTimeout(() => { hide("commission3"); show("commission4") }, 3000);
setTimeout(() => { visibility() }, 4000);
}
visibility();