1.需要:奇数行和偶数行颜色不同,鼠标经过某个li的时候背景颜色需要改变,当鼠标离开某个li的时候,颜色需要回到原来状态
2.首先我们开始让奇数和偶数行颜色改变时,我第一反应是for循环来做,后来发现需要循环2此,比较麻烦,下面是判断li的奇偶性来做,方便很多,然后将简单的if语句用三元表达式来简化很nice
这个时候我们就引入了自定义属性,讲原来的值(颜色)存到一个变量中,然后我们自己在每个li中定义一个属性来存储这个变量
等到鼠标经过后,我们需要用到原来的属性的时候,再讲这个方法拿来用
<!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>Document</title>
<style>
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
width: 500px;
margin: 30px auto;
}
li {
line-height: 35px;
border-bottom: 1px solid red;
}
</style>
</head>
<body>
<ul class="box">
<li>0</li>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>
<script>
// 自定义属性,前期把一些值存储到元素属性上,后期需要用到的时候直接从元素上获取即可
var lis = document.getElementsByTagName('li')
for (var i = 0; i < lis.length; i++) {
var bg = i % 2 === 0 ? 'red' : 'pink';
lis[i].style.backgroundColor = i % 2 === 0 ? 'red' : 'pink';
lis[i].myOriginBg = bg
lis[i].onmouseover = function() {
this.style.backgroundColor = ' blue'
}
lis[i].onmouseout = function() {
this.style.backgroundColor = this.myOriginBg
}
}
</script>
</body>
</html>