昨天我操作失误,没把昨天的发出去,哭~今天补一个
我先把写好的html文件给你们看一下
<ul>
<li>大橘</li>
<li>英短</li>
<li>美短</li>
<li>布偶</li>
</ul>
<div>
<img src="https://img0.baidu.com/it/u=2309643650,2890855463&fm=26&fmt=auto" alt="" style="display: block;">
<img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fn.sinaimg.cn%2Fsinakd20200721ac%2F285%2Fw614h471%2F20200721%2F46f5-iwtqvyi9444293.jpg&refer=http%3A%2F%2Fn.sinaimg.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1651243261&t=9632e6b36e740bc4994fac0e46652bde" alt="">
<img src="https://img2.baidu.com/it/u=3604067922,525804311&fm=26&fmt=auto" alt="">
<img src="https://img2.baidu.com/it/u=3562558155,1107192441&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=711" alt="">
</div>
当然还不能少了css文件
<style>
ul,li{
margin: 0;
padding: 0;
list-style: none;
}
ul {
overflow: hidden;
}
li {
width: 100px;
height: 40px;
background-color: #eee;
border:1px solid #ccc;
float: left;
line-height: 40px;
text-align: center;
}
.div {
width: 406px;
height: 406px;
border: 1px solid #ccc;
}
img {
width: 406px;
height: 406px;
display: none;
}
</style>
写完了,效果就是这样的
特别可爱~
下面开始整理js文件
这是我们今天要实现的逻辑
我们先选取li和img,然后用for,去遍历每一个li,接着用一个事件onmouseover(会在鼠标指针移动到指定的对象上时触发事件发生),鼠标放上去变色,移出去当然也得返回颜色,就又用到了一个事件onmouseout(会在鼠标指针移出指定的对象上时触发事件发生)
var li = document.getElementsByTagName('li');
var img = document.getElementsByTagName('img');
//onmouseover 是鼠标移动到目标上触发的事件
for(let i = 0;i<li.length;i++){
li[i].onmouseover = function(){
li[i].style.backgroundColor = 'pink';
}
//onmouseout 是在鼠标指针移出指定的对象上时触发事件发生
li[i].onmouseout = function(){
li[i].style.backgroundColor = '#eee';
}
}
让我们来看一下效果
接着我们运用到一个思想,就是img的下标与上面li的下标,其实是对应的,之后我们直接用li的下标去选择图片,就可以了,最后在用排他思想,直接让对应的图片出现
<script>
// 逻辑1.移动到哪个选项卡上,自己的背景颜色要改变
// 2.对应的内用区域要显示
// 同理:移出时,背景颜色回复,对应内容区域隐藏
var li = document.getElementsByTagName('li');
var img = document.getElementsByTagName('img');
//onmouseover 是鼠标移动到目标上触发的事件
for(let i = 0;i<li.length;i++){
//先进行元素数组 下标的设置
li[i].index = i;
li[i].onmouseover = function(){
li[i].style.backgroundColor = 'pink';
//this.index其实就是对应着图片的下标
//先把所有的图片都隐藏,再让对应的图片出现(排他思想)
for(let j = 0;j<img.length;j++) {
img[j].style.display = 'none';
}
img[this.index].style.display = 'block';
}
//onmouseout 是在鼠标指针移出指定的对象上时触发事件发生
li[i].onmouseout = function(){
li[i].style.backgroundColor = '#eee';
}
}
</script>
看看最后的效果吧