首先设置html内容和css样式
一个box盒子里面包含ul ul里面有 8个li标签,每个li标签中有包含img图像标签
小技巧: .box>ul>li*8>img (快捷方式) 就会有如下所示代码,简化操作
<ul> <li><img src="" alt=""></li> <li><img src="" alt=""></li> <li><img src="" alt=""></li> <li><img src="" alt=""></li> <li><img src="" alt=""></li> <li><img src="" alt=""></li> <li><img src="" alt=""></li> <li><img src="" alt=""></li> </ul>
html+css样式:
<div class="box"> <ul> <li> <img src="images/1.jpg" alt=""> </li> <li> <img src="images/2.jpg" alt=""> </li> <li> <img src="images/3.jpg" alt=""> </li> <li> <img src="images/4.jpg" alt=""> </li> <li> <img src="images/5.jpg" alt=""> </li> <li> <img src="images/6.jpg" alt=""> </li> <li> <img src="images/7.jpg" alt=""> </li> <li> <img src="images/8.jpg" alt=""> </li> </ul> </div>
<style> * { margin: 0; padding: 0; } li { list-style: none; float: left; } div { box-sizing: border-box; } .box { width: 810px; height: 450px; background-color: #000; margin: 0 auto; } li { overflow: hidden; width: 190px; height: 210px; margin-left: 10px; margin-top: 10px; } li img { /* width: 100%; */ height: 100%; } /* 以下是调整图片在li标签中的位置,如果图片位置合适,可以不用写 */ ul li:first-child img { margin-left: -39px; } ul li:nth-child(2) img { margin-left: -81px; margin-top: 1px; } ul li:nth-child(5) img { margin-left: -104px; margin-top: 1px; } ul li:last-child img { margin-left: -81px; margin-top: 1px; } </style>
jquery代码这部分
首先引入jquery.min.js文件
再写其他script代码
第一种方法:
1、当鼠标移入ul中的li里面的时候,先让他自己快速用fadeTo()方法变亮。再让其他的(他的亲兄弟)变暗。
2、变亮第一次可以不用,如果不写的话,第二次移动到li上时,所有的都变暗。如图所示
3、用stop() 方法可以避免"排队"的现象发生
<script src="jquery.min.js"></script> <script> // 入口函数 $(function() { // 当鼠标移入ul中的li里面的时候,先让他自己快速用fadeTO()方法,变亮,再让其他的变暗 // 变亮第一次可以不用。如果不写的话,第二次移动到li上时,所有的都变暗 // 用stop() 方法可以避免"排队"的现象发生 // (通俗来讲就是,快速移动多次,鼠标不移动了,页面上的效果还在移动) $('ul li').mouseenter(function() { $(this).stop().fadeTo(1, 1).siblings().stop().fadeTo(200, 0.5); }); // 当鼠标离开大盒子时,就让他的所有的li"子孙"变亮,这里用的是find()放法 $('.box').mouseleave(function() { $(this).find('li').fadeTo(300, 1); }); });
第二种方法:
用hover() 方法,
里面写两个函数, 就是经过时执行第一个里面的内容, 离开时执行第二个里面的内容
里面写一个函数, 就是经过离开这个执行一次里面的函数, 类似于toggle
// 方法二 用hover() 方法, // 里面写两个函数, 就是经过时执行第一个里面的内容, 离开时执行第二个里面的内容 // 里面写一个函数, 就是经过离开这个执行一次里面的函数, 类似于toggle $(function() { $('ul li').hover(function() { $(this).siblings().fadeTo(300, .5); }, function() { $(this).siblings().fadeTo(1, 1); }) });