隔行染色,触碰变色
分析:如上一文章一样,每隔一行颜色就一样,考虑用奇偶数来控制背景颜色,当我鼠标触碰到第二行时,背景颜色变为天蓝色
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>隔行染色</title>
<style>
ul {
padding: 0;
margin: 0;
list-style: none;
}
li {
width: 800px;
height: 80px;
line-height: 80px;
padding: 0 2em;
}
</style>
</head>
<body>
<ul>
<li>小猫咪1</li>
<li>小猫咪2</li>
<li>小猫咪3</li>
<li>小猫咪4</li>
<li>小猫咪5</li>
<li>小猫咪6</li>
</ul>
<script>
let lis = document.querySelectorAll("li")
lis.forEach((li, b) => {
if (b % 2 == 0) {
li.style.backgroundColor = "pink"
} else {
li.style.backgroundColor = "yellow"
}
//利用Attribute系列为li标签添加非标准属性data-color,用来存储li原本的颜色
li.setAttribute("data-color", li.style.backgroundColor)
//添加鼠标移入事件
li.onmouseover = () => {
li.style.backgroundColor = "skyblue"
}
//添加鼠标移出事件
li.onmouseout = () => {
//把li的背景颜色变回原本的颜色
li.style.backgroundColor = li.getAttribute("data-color")
// 用户会多次移入移除,所以来回添加删除会消耗性能,所以以下代码不写
// li.removeAttribute("data-color")
}
});
</script>
</body>
</html>
对Atrribute系列不懂的留言,可出文章讲解