基于JQuery的渐隐渐现轮播

 1 <div id="ads">
 2     <div>
 3       <!--轮播图片-->
 4       <ul>
 5         <li><a  href="#" target="_blank"><img alt="" src="" /></a></li>
 6         <li><a  href="#" target="_blank"><img alt="" src="" /></a></li>
 7         <li><a  href="#" target="_blank"><img alt="" src="" /></a></li>
 8         <li><a  href="#" target="_blank"><img alt="" src="" /></a></li>
 9       </ul>
10       <!--左右切换箭头-->
11       <div>
12         <div><img alt="" src="" /></div>
13         <div><img alt="" src="" /></div>
14       </div>
15     </div>
16   <!--导航小圆点-->
17     <ul>
18         <li class="focus"></li>
19         <li></li>
20     <li></li>
21         <li class="lastLi"></li>
22     </ul>
23 </div>
 1 li{display: inline-block; float: left;}
 2   .lastLi{margin-right: 0 !important;}
 3   #ads{position: relative; margin-bottom:33px; width:100%; min-width: 1210px;height:512px;overflow: hidden;z-index:0;}
 4   #ads>div{position:relative; margin:0 auto; width:inherit; min-width:1210px; height:inherit;}
 5   #ads>div>ul>li{display:none; position: absolute;top:0;left:50%;margin-left:-960px; z-index:1;}
 6   #ads>div>ul>li:first-child{display:block;}
 7   #ads>div>div{position:relative; width:1210px; height:290px; margin:0 auto;}
 8   #ads>div>div>div{position:absolute; display:none; top:222px; right:0; width:67px; height:67px; cursor:pointer;z-index:3; }
 9   #ads>div>div>div:first-child{left:0;}
10   #ads>ul{
11     position: absolute;
12     top: 480px;
13     left: 50%;
14     margin:0 0 0 -26px;
15     padding: 0;
16     z-index: 11;
17   }
18   #ads>ul>li{
19     margin-right: 8px;
20     padding: 0;
21     width: 9px;
22     height: 9px;
23     border-radius: 10px;
24     cursor: pointer;
25     background:url() 0 0 no-repeat;
26   }
27   #ads>ul>li.focus{
28     background:url() 0 -9px no-repeat;
29   }
 1 ;(function(){
 2     var setting = {
 3             $ads:$("#ads"),
 4             $adsContent: $("#ads>div>ul>li"),//大广告
 5             $arrows: $("#ads>div>div>div"),//切换箭头
 6             $markPoints: $("#ads>ul>li"),//小圆点
 7             HIDETIME:400,//消失时间
 8             SHOWTIME:800,//出现时间
 9             INTERVALTIME:4000,//间隔时间 
10             animaChoice:0//0代表渐隐渐现,1代表滚动
11         },
12         currentIndex=0,
13         len = setting.$adsContent.length,
14         _setInterval=setInterval(autoPlay,setting.INTERVALTIME);
15 
16     setting.$ads.hover(function(){
17         setting.$arrows.fadeIn("fast").css("display","inline-block");
18     },function(){
19         setting.$arrows.fadeOut("fast");
20     });
21    
22     //向右切换
23     function autoPlay(){
24         switchAds(0,false);
25     }
26 
27     //点击箭头切换
28     setting.$arrows.each(function(index){
29         if(index==0){
30             $(this).on("click",function(){
31                 switchAds(1,true);
32             });
33         }
34         else{
35             $(this).on("click",function(){
36                 switchAds(0,true);
37             });
38         }
39     })
40 
41     //点击小圆点切换
42     setting.$markPoints.each(function(index){
43         $(this).on("click",function(){
44             switchAds(2,true,index);
45         })
46     })
47 
48     //切换
49     function switchAds(clickStatus,beClicked,index){
50         if(beClicked) setting.$adsContent.stop(false,true);
51         if(!setting.$adsContent.is(":animated")){
52             if(beClicked) clearInterval(_setInterval);
53             animate(setting.$adsContent.eq(currentIndex),false,setting.animaChoice);
54             switch(clickStatus){
55                 case 0://选择下一张
56                   currentIndex++;
57                   break;
58                 case 1://选择前一张
59                   currentIndex--;
60                   break;
61                 case 2://选择被点击的
62                   currentIndex=index;
63                   break;
64                 default:
65                   break;
66             }
67             if(currentIndex==len) currentIndex=0;
68             else if(currentIndex==-1) currentIndex=len-1;
69             //console.log(currentIndex);
70             animate(setting.$adsContent.eq(currentIndex),true,setting.animaChoice);
71             markDot(setting.$markPoints.eq(currentIndex));
72             if(beClicked) _setInterval=setInterval(autoPlay,setting.INTERVALTIME);
73         }
74     }
75 
76     //负责标记小圆点
77     function markDot($target){
78         $target.addClass("focus").siblings().removeClass("focus");
79     }
80 
81     //负责动画效果
82     function animate($target,show,animaChoice){
83         switch(animaChoice){
84             case 0:
85               if(show) $target.fadeIn(setting.SHOWTIME);
86               else $target.fadeOut(setting.SHOWTIME);
87               break;
88             case 1:
89               if(show) ;
90               else ;
91               break;
92             default:
93               break;
94         }
95     }
96 
97 })()

 

posted @ 2015-10-08 12:22  zhengtulym  阅读(1166)  评论(0编辑  收藏  举报