在实现这个效果之前,先分析下如何来完成这下效果。在产品广告下方有5个缩略文字介绍,它们分别代表5张广告图,如图1所示
图1 产品广告效果
当光标滑过文字1时,需要显示第1张图片;当光标滑过文字2时,需要显示第2张图片;依此类推。因此,如果能正确获取到当前滑过的文字的索引值,.那么完成果就非常简单了。
新建JavaScript文档,保存为ad.js。输入下面代码:
/* 首页大屏广告效果 */ $(function(){ var $imgrolls = $("#jnImageroll div a"); $imgrolls.css("opacity","0.7"); var len = $imgrolls.length; var index = 0; var adTimer = null; $imgrolls.mouseover(function(){ index = $imgrolls.index(this); showImg(index); }).eq(0).mouseover(); //滑入 停止动画,滑出开始动画. $('#jnImageroll').hover(function(){ if(adTimer){ clearInterval(adTimer); } },function(){ adTimer = setInterval(function(){ showImg(index); index++; if(index==len){index=0;} } , 5000); }).trigger("mouseleave"); }) //显示不同的幻灯片 function showImg(index){ var $rollobj = $("#jnImageroll"); var $rolllist = $rollobj.find("div a"); var newhref = $rolllist.eq(index).attr("href"); $("#JS_imgWrap").attr("href",newhref) .find("img").eq(index).stop(true,true).fadeIn().siblings().fadeOut(); $rolllist.removeClass("chos").css("opacity","0.7") .eq(index).addClass("chos").css("opacity","1"); }
在上面代码中,定义了一个showImg()函数,然后给函数传递了一个参数index,index代表当前要显示图片的索引。
获取当前滑过的元素在所有元素中的索引可以使用jQuery的index()方法。其中,.eq(0).mouseover()部分是用来初始化的,让第1个文字高亮并显示第1个图片。
读者也可以修改eq()方法中的数字来让页面默认显示任意一个广告。