javascript下怎么设置三色灯
发布时间:2023-10-04 17:30:28 所属栏目:教程 来源:网络
导读: 首先,我们需要在HTML中创建一个灯的容器,并在其中添加三个圆形元素,以表示红、黄和绿色灯。我们可以使用CSS样式来为这些元素设置宽度、高度和颜色。
<div id="light">
<div id="light">
首先,我们需要在HTML中创建一个灯的容器,并在其中添加三个圆形元素,以表示红、黄和绿色灯。我们可以使用CSS样式来为这些元素设置宽度、高度和颜色。 <div id="light"> <div class="light-circle red"></div> <div class="light-circle yellow"></div> <div class="light-circle green"></div> </div> <style> #light { width: 200px; height: 400px; margin: 0 auto; border: 2px solid black; border-radius: 10px; overflow: hidden; position: relative; } .light-circle { width: 100%; height: 100%; position: absolute; top: 0; left: 0; border-radius: 50%; background-color: #333; transition: all 0.5s ease; } .red { background-color: red; } .yellow { background-color: yellow; } .green { background-color: green; } </style> 在设置了初始的HTML和CSS之后,接下来我们将使用JavaScript代码来操纵这些灯。我们将创建一个名为“setLight”的函数,该函数将用于控制三个灯的状态。 首先,我们需要定义一个名为“cur”的变量,用于追踪当前灯的状态。我们将其设置为0,表示初始状态为红灯亮。 var cur = 0; // 初始状态为0:红灯亮 接下来,我们将创建一个名为“setLight”的函数。该函数将根据变量“cur”的当前值来确定哪个灯应处于亮的状态,并将其余灯设置为暗的状态。我们使用classList属性来添加和删除灯圈上的“on”类来实现这个功能。 function setLight() { var redLight = document.querySelector('.red'); var yellowLight = document.querySelector('.yellow'); var greenLight = document.querySelector('.green'); switch(cur) { case 0: redLight.classList.add('on'); yellowLight.classList.remove('on'); greenLight.classList.remove('on'); break; case 1: redLight.classList.remove('on'); yellowLight.classList.add('on'); greenLight.classList.remove('on'); break; case 2: redLight.classList.remove('on'); yellowLight.classList.remove('on'); greenLight.classList.add('on'); break; } } 接下来,我们将使用定时器来控制三个灯的状态更改。我们将灯的状态更改为每隔2秒钟一次。灯的状态更改是通过将变量“cur”的值递增1而实现的,并在cur的值达到3时重新设置为0。 setInterval(function() { cur++; if(cur >= 3) { cur = 0; } setLight(); }, 2000); 最后,在HTML中添加JavaScript代码,我们的三色灯就完成了。 <div id="light"> <div class="light-circle red"></div> <div class="light-circle yellow"></div> <div class="light-circle green"></div> </div> <script> var cur = 0; function setLight() { var redLight = document.querySelector('.red'); var yellowLight = document.querySelector('.yellow'); var greenLight = document.querySelector('.green'); switch(cur) { case 0: redLight.classList.add('on'); yellowLight.classList.remove('on'); greenLight.classList.remove('on'); break; case 1: redLight.classList.remove('on'); yellowLight.classList.add('on'); greenLight.classList.remove('on'); break; case 2: redLight.classList.remove('on'); yellowLight.classList.remove('on'); greenLight.classList.add('on'); break; } } setInterval(function() { cur++; if(cur >= 3) { cur = 0; } setLight(); }, 2000); </script> <style> #light { width: 200px; height: 400px; margin: 0 auto; border: 2px solid black; border-radius: 10px; overflow: hidden; position: relative; } .light-circle { width: 100%; height: 100%; position: absolute; top: 0; left: 0; border-radius: 50%; background-color: #333; transition: all 0.5s ease; } .red { background-color: red; } .yellow { background-color: yellow; } .green { background-color: green; } .on { box-shadow: 0 0 20px 8px #FFD700; } </style> (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐