JS中制作红绿灯的代码?

JavaScript04

JS中制作红绿灯的代码?,第1张

只能修改页面统一代码中的颜色设置: a:hover { color: #FFFFFFtext-decoration: none} a:visited { color: #ffftext-decoration: none}

我简单制作了一个,你看是否是你所需要的:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" />

<title>无标题文档</title>

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

<style type="text/css">

*{margin:0pxpadding:0px}

.main{border:1px double #cccwidth:300pxheight:100px}

.deng{width:90pxheight:90pxfloat:leftborder:3px solid blackbackground-color:#CCCCCCborder-radius:45pxmargin-left:2px}

.jiShi{margin:5px 10pxcolor:#FF00FF}

</style>

</head>

<body>

<div class="main">

<div class="deng c0"></div>

<div class="deng c1"></div>

<div class="deng c2"></div>

<div class="jiShi">

00:00:30

</div>

<H3>每隔30秒变换一次</H3>

</div>

<script type="text/javascript">

window.onload=function(){

let timer,timer2

let n = 0

let t = 29

let colors = ["red","green","yellow"]

timer = window.setInterval(function(){

if(t==0){

$(".deng").css({"backgroundColor":"#CCC"})

$(".c" + n).css({"backgroundColor":colors[n]})

n++

if(n==3){n=0}

t=30

}else{

$(".jiShi").text("00:00:" + t)

t--

}

},1000)

}

</script>

</body>

</html>

一、控件

1、示范图,直接画个图,然后加载到 Picture1 中。

2、灯。圆形,用 Shape 控件,组不组控件数组随意。

3、倒计时。用 Label 控件。

4、按钮。我这里用的是二个 Check 控件。内容:自动,手动。

另 手动中所示二个按钮,使用的是 Option 。

关闭按钮,使用的才是:Command

5、另放一个计时器(timer),Interval :1000 , Enabled :False

二、方法

1、常量:

Const TXDR = 55 '通行东西红灯时间

Const TXLR = 60 '通行南北红灯时间

Const TXH = 5 '通行黄灯时间

2、变量,一个计时用的变量,一个表示状态的变量。

状态的变量可用或不用,用的话,可以节省CPU处理时间。

3、响应事件。

自动,手动,需要响应事件。我的代码主要写在计时器里,所以 这个响应事件很简单。

程序代码:

Private Sub Check1_Click() '点击自动

If Check1.Value = 1 Then'如果自动开

Check2.Value = 0'手动关

DoEvents'等待手动关响应执行完

TXjs = 0

Timer1.Enabled = True '开定时器

Else'否则

Timer1.Enabled = False '关定时器

End If

End Sub

Private Sub Check2_Click() '点击手动

If Check2.Value = 1 Then'如果手动关

Check1.Value = 0'自动关

DoEvents'等待自动关响应执行完

TXjs = 0

Timer1.Enabled = True '开定时器

Else'否则

Timer1.Enabled = False '关定时器

End If

End Sub

4、定时器里。

首先,计时,每1秒,自加1

当 计时的结果超过一个周期,置 0

对 计时结果进行 多分支选择。

Select Case TXjs

Case Is <TXDR '东西红

Case Is <TXDR + TXH '东西黄

Case Is <TXDR + TXH + TXLR '南北红

Case Is <TXDR + TXH + TXLR + TXH '南北红

Case Else

TXjs = 0

End Select

每个分支中,单独对四个灯和四个倒计时分别指定。

手动部分,没什么,判断一下,然后直接指定,不解释了。

程序代码:

If Check2.Value = 1 Then

If Option1.Value = True Then

Shape1(0).FillColor = vbRed

Shape1(1).FillColor = vbRed

Shape1(2).FillColor = vbGreen

Shape1(3).FillColor = vbGreen

'Label1(0).ForeColor = vbRed

'Label1(1).ForeColor = vbRed

'Label1(2).ForeColor = vbGreen

'Label1(3).ForeColor = vbGreen

Label4.Caption = "南北:绿"

Label5.Caption = "东西:红"

DoEvents

Else

Shape1(0).FillColor = vbGreen

Shape1(1).FillColor = vbGreen

Shape1(2).FillColor = vbRed

Shape1(3).FillColor = vbRed

'Label1(0).ForeColor = vbGreen

'Label1(1).ForeColor = vbGreen

'Label1(2).ForeColor = vbRed

'Label1(3).ForeColor = vbRed

Label4.Caption = "南北:红"

Label5.Caption = "东西:绿"

DoEvents

End If

Label1(0).Caption = "∞"

Label1(1).Caption = "∞"

Label1(2).Caption = "∞"

Label1(3).Caption = "∞"

End If

性质是一样的 你看看吧