javascript是一种广泛使用的编程语言,许多web开发人员使用它来创建交互式动态网页。其中,javascript中的 dom(document object model)对象提供了一些有趣的方法和属性来操纵html元素。在本文中,我们将通过这种方法来创建一个有趣的三色灯,并学习如何使用javascript操纵html元素。
首先,我们需要在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”类来实现这个功能。
立即学习“Java免费学习笔记(深入)”;
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>如上所述,我们使用JavaScript的DOM对象方法和属性来操纵我们在HTML中定义的元素。我们创建了一个名为“setLight”的函数来控制三个灯的状态,然后使用定时器来周期性地调用该函数来更改三个灯的状态。最终,我们创建了一个非常有趣的三色灯,通过在HTML和JavaScript之间的交互,实现了动态变化的灯光效果。
以上就是javascript设置三色灯的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号