红绿灯

作者: sunout | 来源:发表于2017-05-21 09:37 被阅读0次

程序不在大小,下面是自己写的一个模拟红绿灯的程序
首先我们先确定功能:
1.要有显示灯时间的地方
2.灯在剩余时间只有十秒的时候开始闪烁
3.可以调整灯显示的时间
4.灯按照红-黄-绿-红的顺序切换
写的不好,希望朋友们可以提出宝贵意见。
下面是CSS代码:

*{
    margin:0px;
    padding:0px;}
#all{
    width:300px;
    height:400px;
    border: thin solid #000000;
    position:relative;
    top:150px;
    left:400px;
    }
#left{
    width:100px;
    height:400px;
    border: thin solid #000000;
    float:left;
    }
#number{
    width:100px;
    height:100px;
    text-align:center;
    font-size:80px;
    }
#color{ 
    background-color:#000000;
    width:100px;
    height:300px;}
.lamp{
    height: 85px;
    width: 85px;
    border: thin solid #000000;
    border-radius:85px;
    padding:5px;
    background:gray;
    }
#right{
    width:195px;
    height:400px;
    border: thin solid #000000;
    float:right;
    background-image:url(text2.jpg);
    background-size:195px 400px;
    }
#control{
    margin-top:100px;
    font-family:"Times New Roman", Times, serif;
    font-size:20px;
    font-style:normal;
    text-align:center;
    font-weight: bold;
    text-decoration: blink;
    }
.time{  
    text-align:center;
    width:195px;
    height:25px;
    }
input{  
    width:180px;
    }

HTML标签:

<div id="all">
<div id="left">
<div id="number">
</div>
<div id="color">
<div class="lamp" id="red">
</div>
<div class="lamp" id="yellow">
</div>
<div class="lamp" id="green">
</div>
</div>
</div>
<div id="right">
<div id="control">
<p><label>红灯时间:</label><br>
<input type="range" min="1" max="60" id="red_num">
<div id="red_num1" class="time"></div></p>

<p><label>黄灯时间:</label><br>
<input type="range" min="1" max="60" id="yellow_num">
<div id="yellow_num1" class="time"></div></p>

<p><label>绿灯时间:</label><br>
<input type="range" min="1" max="60" id="green_num">
<div id="green_num1" class="time"></div></p>

<p><button id="button" class="time">开始</button></p>

</div>
</div>
</div>

JavaScript:

var number=document.getElementById("number");
var red=document.getElementById("red");
var yellow=document.getElementById("yellow");
var green=document.getElementById("green");
var red_num=document.getElementById("red_num");
var yellow_num=document.getElementById("yellow_num");
var green_num=document.getElementById("green_num");
var red_num1=document.getElementById("red_num1");
var yellow_num1=document.getElementById("yellow_num1");
var green_num1=document.getElementById("green_num1");
var button=document.getElementById("button");
var record,shijian,tiaodong,count;
//record:用于灯的转换;shijian:被赋予灯亮的时间;tiaodong,count:被赋予setTimeout()函数,控制对应活动的开始结束:

number.innerHTML=red_num.value;
red_num1.innerHTML=red_num.value;
yellow_num1.innerHTML=yellow_num.value;
green_num1.innerHTML=green_num.value;

red_num.onchange=function(){    
     if(!count){
   number.innerHTML=red_num.value;}
   //如果当前红灯正在“亮”则,不影响本次红灯显示的时间
  red_num1.innerHTML=red_num.value;
          }

yellow_num.onchange=function(){ 
    yellow_num1.innerHTML=yellow_num.value;}

green_num.onchange=function(){  
    green_num1.innerHTML=green_num.value;}
    
function toRed(){
    clearTimeout(tiaodong);
    shijian = red_num.value;
    number.innerHTML=shijian;
    record=1;
    number.style.color="red";
    green.style.backgroundColor="gray";
    red.style.backgroundColor="red";
}

function toYellow(){
    clearTimeout(tiaodong);
    shijian = yellow_num.value;
    number.innerHTML=shijian;
    record=2;
    number.style.color="yellow";
    red.style.backgroundColor="gray";
    yellow.style.backgroundColor="yellow";}

function toGreen(){
    clearTimeout(tiaodong);
    shijian = green_num.value;
    number.innerHTML = shijian;
    record=3;
    number.style.color="green";
    green.style.backgroundColor="green";
    yellow.style.backgroundColor="gray";
   }

function start(){     
    if(shijian>10){
    count=setTimeout(start,1000);
    number.innerHTML = shijian ;
    shijian = shijian-1;}
    
    else{   
    count=setTimeout(start,1000);
    number.innerHTML = shijian ;
    shijian = shijian-1;
    tiaodong=setTimeout(function(){number.innerHTML=""},500);
     }
     
    if(number.innerHTML<=0){  
     switch(record){         
     case 1:toYellow();break; 
     case 2:toGreen();break;
     case 3:toRed();break;   
                     }
                   }
                 }
                 
button.onclick=function(){  
    shijian = red_num.value;
    number.innerHTML=shijian;
    number.style.color="red";
    red.style.backgroundColor="red";
    yellow.style.backgroundColor="gray";
    green.style.backgroundColor="gray";
    if(count)
    clearTimeout(count);
    record=1;
    start();
    }

看程序我觉得只要能理解,其中的逻辑过程,就可以了,如果朋友你看了之后有不能理解的地方,请联系我,我写的也不是最好的,有更好的想法我们可以一起交流!


相关文章

  • 友吃|速看!高血压、高血脂、高血糖、高尿酸食物一览表

    高血压食物红绿灯表 高血脂食物红绿灯表 高血糖食物红绿灯表 高尿酸食物红绿灯表 【友吃健康】 来源:健康时报

  • 乐乐的日记(一)

    我今天最喜欢的活动是跳绳,和红绿灯还有电路板,然后呢我学到了做红绿灯。红绿灯的部件有很多,有红绿灯的支撑架,...

  • 红绿灯

    走着,拖着,来到了这座陌生的城市。 这里有着排排的高楼,可高楼外墙是那么的冰凉。 眼前那耀眼而又闪烁的红绿灯,不断...

  • 红绿灯

    红绿灯下班坐在消防栓上抽着烟, 他问我过来为什么不走斑马线。 我不假思索说,他们都不走。 他望着天,吐的烟圈像云,...

  • 红绿灯

    我觉得你是一盏红绿灯, 却一直因我亮着黄灯。 停下来等不到绿灯, 走吧?又怕下一毫秒是红灯…… 我们熟悉但不了解、...

  • 红绿灯

    偶然想起那天那个红绿灯,我们趁着绿灯走过马路 我问:为什么红绿灯会一直响呢 她说:一直响的,是绿灯,一响一停是红灯...

  • 红绿灯

    早上小哥校服穿反了,发现的时候,直说自己怎么这么二? 我在做镜子练习,敏感的发现他惯于否定自己,而非鼓励自己。 于...

  • 红绿灯

    .红绿灯 笑青 真神奇 你就像那无形的闸门 打开, 就会涌出滚滚的车流人流 关闭 就会隔离出通行的安全地带 你眨巴...

  • 红绿灯

    今天回忆起来,我好像看到了一个傻叉。 从地铁出来,去公司还要有一段路,所以买了辆自行车停在旁边。 去开锁的时候望见...

  • 红绿灯

    穿过斑马线的时候 望着你的时候 听着你的时候 感受到了城市的心跳声 像只是路过你一样 不知道自己在里面还是外面

网友评论

      本文标题:红绿灯

      本文链接:https://www.haomeiwen.com/subject/yuymxxtx.html