$(function(){ /*图片轮换的js*/ /*********初始设置**************/ //获取节点对象 var imgouter = $('.mwrap');//所有图片所处的容器 var imgdiv = $('.pic');//各图片所在的div容器 //设置部分初始值与计算 var timeid = null;//记录如片轮换的定时器,自动轮换与鼠标控制切换时用到 var edgedistance = 65;//记录相邻图片错开的距离 var imgnow = 0;//记录当前显示的第几张图片,此处为默认值0 var imgmouse = 0;//记录鼠标停留在第几张图片上 var imgouterwidth = imgouter.width();//记录所有图片最外层容器的宽度,计算即将显示第一张图片时的,其他图片移动的距离 // alert(imgdiv.size()); /**********方法*************/ /*图片自动轮换的方法主体*/ function autoslide(){ //计算第几张图片开始运动 if(imgnow == imgdiv.size()-1){ imgnow = 0; }else{ imgnow ++; } //显示第一张图片和显示后面图片的移动方式不同 if(imgnow == 0){//显示第一张图片 //图片左上角的数字样式先改变 imgdiv.eq(imgnow).children(".pic_num").hide().siblings().children(".pic_num").show(); imgdiv.eq(imgnow).children(".txt").show().siblings().children(".txt").hide(); imgdiv.eq(imgnow).siblings().children(".pic_num").show(); imgdiv.eq(imgnow).siblings().children(".txt").hide(); //图片运动 for(var i=imgdiv.size()-1;i>0;i--){ imgdiv.eq(i).animate({'left':imgouterwidth-(imgdiv.size()-i)*edgedistance+'px'},700); } }else{//显示第一张之外的任意图片 //图片左上角的数字样式先改变 imgdiv.eq(imgnow).children(".txt").show().siblings().children(".txt").hide(); imgdiv.eq(imgnow).children(".pic_num").hide().siblings().children(".pic_num").show(); /*imgdiv.eq(imgnow).children().hide().siblings().children().show();*/ imgdiv.eq(imgnow).siblings().children(".pic_num").show(); imgdiv.eq(imgnow).siblings().children(".txt").hide(); //图片运动 imgdiv.eq(imgnow).animate({'left':edgedistance*imgnow+'px'},700); } } /*鼠标影响图片轮换的方法主体*/ function mouseslide(){ //判断鼠标所在图片是否已轮换过,选择右边图片移动或左边图片移动 if(imgmouse > imgnow){//鼠标左边图片移动,即鼠标选中的是当前图片右边的图片 for(var i= imgnow+1;i<=imgmouse;i++){ //图片左上角数字样式改变 imgdiv.eq(imgmouse).children(".pic_num").hide(); imgdiv.eq(imgmouse).children(".txt").show(); imgdiv.eq(imgmouse).siblings().children(".txt").hide(); imgdiv.eq(imgmouse).siblings().children(".pic_num").show(); //图片移动 imgdiv.eq(i).stop().animate({'left':edgedistance*i+'px'},700); } //重置当前图片的索引 imgnow = imgmouse; }else{//鼠标右边图片移动,即鼠标选中的是当前图片左边的图片 for(var i= imgnow;i>imgmouse;i--){ //图片左上角数字样式改变 imgdiv.eq(imgmouse).children(".pic_num").hide(); imgdiv.eq(imgmouse).children(".txt").show(); imgdiv.eq(imgmouse).siblings().children(".pic_num").show(); imgdiv.eq(imgmouse).siblings().children(".txt").hide(); //图片移动 imgdiv.eq(i).stop().animate({'left':imgouterwidth-(imgdiv.size()-i)*edgedistance+'px'},700); } //重置当前图片的索引 imgnow = imgmouse; } } /**********图片控制事件*************/ /*图片自动轮换*/ timeid = setinterval(autoslide,3000); /*鼠标影响图片轮换*/ imgdiv.hover(function(){ //鼠标移入,停止自动轮换 clearinterval(timeid); //获得鼠标停留在第几张图片,调用鼠标事件的方法 imgmouse = $(this).index(); if(imgmouse != imgnow){ mouseslide(); } },function(){ //鼠标离开,继续自动轮换 timeid = setinterval(autoslide,3000); }).bind('click',function(){ imgnow = $(this).index(); }); });