可以使用setTimeout来写吗
来源:1-25 编程练习
键盘f11
2020-05-24 16:35:23
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>闪烁的文字</title>
<style type="text/css">
div{
width:200px;
height:200px;
line-height:200px;
border:2px solid gray;
text-align:center;
color:red;
}
</style>
</head>
<body>
<h3>会闪烁的文字</h3>
<div id="text"> </div>
<script type="text/javascript">
// var nei=document.getElementByTagName("div")[0];
var long=document.getElementById("text");
var i=0;
function shixin(){
if(i==0){
long.innerHTML=i+"☆☆☆今日特卖☆☆☆";
}
}
function kongxin(){
long.innerHTML=("★★★今日特卖★★★");
}
function inCreamentNum(){
if(i==0){
setTimeout(shixin,500);
i=1;
}else{
setTimeout(kongxin,500);
//long.innerHTML=("★★★今日特卖★★★");
i=0;
}
}
//补充代码
</script>
</body>
</html>
老师,您好,上述为我写的代码,我想setTimeout来写,但是div里面没有文字,出不来文字效果,但是程序没有报错,不是很清楚问题出在哪里呢?通过判断i的数值为0或者1,来执行相应的语句,
1回答
同学你好,用定时器写是对的,但是逻辑有问题:
1、inCreamentNum定义了需要调用才会执行里面的语句
2、if和else语句只会执行其中一个,即使i值被改变了inCreamentNum函数不会再重新调用一次
3、定时器是异步执行的,会最后执行,所以拿if语句中的代码为例,i=1会先执行,这样执行定时器语句的时候i的值为1,不是0,不会执行if代码
参考修改:
建议将if判断添加在定时器中,并且使用永久定时器,不要只执行一次
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~
相似问题