【JAVASCRIPT】jquery实现聚焦图
HTML框架:
1 <div class="content_right"> 2 <div class="ad" > 3 <ul class="slider" > 4 <li><img src="images/ads/1.gif"/></li> 5 <li><img src="images/ads/2.gif"/></li> 6 <li><img src="images/ads/3.gif"/></li> 7 <li><img src="images/ads/4.gif"/></li> 8 <li><img src="images/ads/5.gif"/></li> 9 </ul> 10 <ul class="num" > 11 <li>1</li> 12 <li>2</li> 13 <li>3</li> 14 <li>4</li> 15 <li>5</li> 16 </ul> 17 </div> 18 </div>
CSS定义如下:
1 <style type="text/css"> 2 *{ margin:0; padding:0;} 3 .ad{ width:586px; height:150px; overflow:hidden; position:absolute;} 4 .content_right .slider,.content_right .num{ 5 position:absolute; 6 } 7 .content_right .slider li{ 8 list-style:none; 9 display:inline; 10 } 11 .content_right .slider img{ 12 width:586px; 13 height:150px; 14 display:block; 15 } 16 .content_right .num{ 17 right:5px; 18 bottom:5px; 19 } 20 .content_right .num li{ 21 float: left; 22 color: #FF7300; 23 text-align: center; 24 line-height: 16px; 25 width: 16px; 26 height: 16px; 27 font-family: Arial; 28 font-size: 12px; 29 cursor: pointer; 30 overflow: hidden; 31 margin: 3px 1px; 32 border: 1px solid #FF7300; 33 background-color: #fff; 34 } 35 </style>
需要注意的是.content_right .slider和.content_right .num的position属性必须设置为absolute,相对定位。不然写完js代码会发现图片怎么点都不会移动,刚开始还以为是js代码写错了,到最后检查css文件才发现css写错了。罪过,罪过!
js代码:
1 <script type="text/javascript"> 2 $(function () { 3 var index = 0; 4 var settime; 5 $(".num li").mouseover(function () { //为li添加鼠标事件,为了的到刚进入页面的index; 6 index = $(".num li").index(this); 7 showimg(index); 8 }).eq(0).mouseover(); //初始化 9 10 $(".ad").hover(function () { 11 clearInterval(settime); //当鼠标进入的时候停止, 12 }, function () { //鼠标离开的时候设置定时器。 13 settime = setInterval(function () { 14 showimg(index); 15 index++; 16 if (index == 5) { 17 index = 0; 18 } 19 }, 3000); 20 }).trigger("mouseleave"); 21 }) 22 function showimg(index) { 23 var height = $(".slider li:first").height(); 24 $(".slider").stop(true).animate({ top : -index * height }, 1000); 25 $(".num").find("li").siblings().css("background", "white").eq(index).css("background", "yellow"); //设置.num li的css属性 26 } 27 </script>
$(".num li").mouseover(fun()````).eq(0).mouseover();是为了初始页面.num li 中的现实效果,如果没有此项,刚进入页面第一幅图相对应的数字不会高亮显示。