可以使用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回答

好帮手慕星星

2020-05-24

同学你好,用定时器写是对的,但是逻辑有问题:

1、inCreamentNum定义了需要调用才会执行里面的语句

2、if和else语句只会执行其中一个,即使i值被改变了inCreamentNum函数不会再重新调用一次

3、定时器是异步执行的,会最后执行,所以拿if语句中的代码为例,i=1会先执行,这样执行定时器语句的时候i的值为1,不是0,不会执行if代码

参考修改:

建议将if判断添加在定时器中,并且使用永久定时器,不要只执行一次

http://img.mukewang.com/climg/5eca41c90980f35a06430409.jpg

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 40143 问题

查看课程