DOM小练习-灯泡效果
要求:五个灯泡,默认选择一个:当点击其中一个变亮,其他黑色;
分析:五个灯泡可以用ul标签包裹5个li标签,左浮动并排显示,给li标签加上等长的宽高后,设置border-radius: 50%;使li盒子变成圆形,设置背景色灰色#aaaaaa 边框:border:5px solid skyblue; 设置选择状态:.on{ background-color: gold;border: 6px solid lawngreen; }
具体看下面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>灯泡效果</title>
<style>
ul{
list-style: none;
}
ul li{
line-height: 50px;
text-align: center;
float: left;
width: 50px;
height: 50px;
border-radius: 50%;
background-color: #aaaaaa;
border: 6px solid skyblue;
}
.on{
background-color: gold;
border: 6px solid lawngreen;
}
li:hover{cursor: pointer;}//设置鼠标悬停时显示小手
</style>
</head>
<body>
<div>
<ul>
<li class="on">1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</div>
<script>
let lis = document.getElementsByTagName("li");//利用伪数组存放li标签
for(let i=0;i<lis.length;i++){//给每一个标签绑定点击事件
lis[i].onclick = function(){//点击事件执行时,先让所有li的class属性为空,此时li的默认效果,即所有灯泡关闭
for(let j=0;j<lis.length;j++){
lis[j].className="";
}
this.className="on"//单独改变前的li标签的className为"on",即此灯泡打开
}
}
</script>
</body>
</html>