红绿灯

程序不在大小,下面是自己写的一个模拟红绿灯的程序
首先我们先确定功能:
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();
    }

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


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容

  • 本文参与#漫步青春#征文活动,作者:张振宇,本人承诺,文章内容为原创,且未在其他平台发布。 ...
    4d1b9d99889c阅读 163评论 0 0
  • 前言 原本不是路,走的人多了也就变成了路。 原本该守的规矩,守得人少了也就变的可有可无。 如果我们不是多数人,那么...
    时下青年阅读 501评论 0 1
  • 今天开车送小孩子去上学的路上,小家伙指着红绿灯问我这是啥?我就给她讲了下。 汽车相对来说看到红灯都会停的,上海这边...
    海归程序猿奶爸阅读 1,900评论 0 1
  • 从小生活在镇上,红绿灯在小时候唯一的印象就是那句口诀——红灯停绿灯行,黄灯等一等。这就像一直不知道共产主义的我,从...
    关山楼不二阅读 258评论 0 1
  • 既然那般苦 那就不相见 相见又恨晚 那就不要恋 可奈何 初见你时 还是少年的模样 鲜衣怒马 唇红齿白 却难敌过 陌...
    木罗泪阅读 275评论 0 1