赞
踩
使用方法:
1. 包含插件JS文件
<script type="text/javascript" src="jquery.SuperSlide.js"></script>
2.
- <!--jquery slide begin-->
- <div class="effect">
- <div class="leftLoop">
- <div class="hd">
- <a class="next"></a>
- <ul>
- <li>1</li>
- <li>2</li>
- <li>3</li>
- <li>4</li>
- <li>5</li>
- </ul>
- <a class="prev"></a>
- </div>
- <div class="bd">
- <ul class="picList">
- <li>
- content1
- </li>
- <li>
- content2
- </li>
- <li>
- content3
- </li>
- <li>
- content4
- </li>
- <li>
- content5
- </li>
- </ul>
- </div>
- <script type="text/javascript">jQuery(".leftLoop").slide({ mainCell:".bd ul",effect:"fade",vis:1,scroll:1,autoPlay:false});</script>
- </div>
- </div>
- <!--jquery slide end-->
- /* SuperSlide1.2 -- Copyright ©2012 大话主席
- */
- (function($){
- $.fn.slide=function(options){
- $.fn.slide.deflunt={
- effect : "fade", //效果 || fade:渐显; || top:上滚动;|| left:左滚动;|| topLoop:上循环滚动;|| leftLoop:左循环滚动;|| topMarquee:上无缝循环滚动;|| leftMarquee:左无缝循环滚动;
- autoPlay:"true", //自动运行
- delayTime : 500, //效果持续时间
- interTime : 2500,//自动运行间隔。当effect为无缝滚动的时候,相当于运行速度。
- defaultIndex : 0,//默认的当前位置索引。0是第一个
- titCell:".hd li",//导航元素
- mainCell:".bd",//内容元素的父层对象
- trigger: "mouseover",//触发方式 || mouseover:鼠标移过触发;|| click:鼠标点击触发;
- scroll:1,//每次滚动个数。
- vis:1,//visible,可视范围个数,当内容个数少于可视个数的时候,不执行效果。
- titOnClassName:"on",//当前位置自动增加的class名称
- autoPage:false,//系统自动分页,当为true时,titCell则为导航元素父层对象,同时系统会在titCell里面自动插入分页li元素(1.2版本新增)
- prevCell:".prev",//前一个按钮元素。
- nextCell:".next"//后一个按钮元素。
- };
-
- return this.each(function() {
- var opts = $.extend({},$.fn.slide.deflunt,options);
- var index=opts.defaultIndex;
- var prevBtn = $(opts.prevCell, $(this));
- var nextBtn = $(opts.nextCell, $(this));
- var navObj = $(opts.titCell, $(this));//导航子元素结合
- var navObjSize = navObj.size();
- var conBox = $(opts.mainCell , $(this));//内容元素父层对象
- var conBoxSize=conBox.children().size();
- var slideH=0;
- var slideW=0;
- var selfW=0;
- var selfH=0;
- var autoPlay = opts.autoPlay;
- var inter=null;//setInterval名称
- var oldIndex = index;
-
- if(conBoxSize<opts.vis) return; //当内容个数少于可视个数,不执行效果。
-
- //处理分页
- if( navObjSize==0 )navObjSize=conBoxSize;
- if( opts.autoPage ){
- var tempS = conBoxSize-opts.vis;
- navObjSize=1+parseInt(tempS%opts.scroll!=0?(tempS/opts.scroll+1):(tempS/opts.scroll));
- navObj.html("");
- for( var i=0; i<navObjSize; i++ ){ navObj.append("<li>"+(i+1)+"</li>") }
- var navObj = $("li", navObj);//重置导航子元素对象
- }
-
- conBox.children().each(function(){ //取最大值
- if( $(this).width()>selfW ){ selfW=$(this).width(); slideW=$(this).outerWidth(true); }
- if( $(this).height()>selfH ){ selfH=$(this).height(); slideH=$(this).outerHeight(true); }
- });
-
- switch(opts.effect)
- {
- case "top": conBox.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:'+opts.vis*slideH+'px"></div>').css( { "position":"relative","padding":"0","margin":"0"}).children().css( {"height":selfH} ); break;
- case "left": conBox.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:'+opts.vis*slideW+'px"></div>').css( { "width":conBoxSize*slideW,"position":"relative","overflow":"hidden","padding":"0","margin":"0"}).children().css( {"float":"left","width":selfW} ); break;
- case "leftLoop":
- case "leftMarquee":
- conBox.children().clone().appendTo(conBox).clone().prependTo(conBox);
- conBox.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; width:'+opts.vis*slideW+'px"></div>').css( { "width":conBoxSize*slideW*3,"position":"relative","overflow":"hidden","padding":"0","margin":"0","left":-conBoxSize*slideW}).children().css( {"float":"left","width":selfW} ); break;
- case "topLoop":
- case "topMarquee":
- conBox.children().clone().appendTo(conBox).clone().prependTo(conBox);
- conBox.wrap('<div class="tempWrap" style="overflow:hidden; position:relative; height:'+opts.vis*slideH+'px"></div>').css( { "height":conBoxSize*slideH*3,"position":"relative","padding":"0","margin":"0","top":-conBoxSize*slideH}).children().css( {"height":selfH} ); break;
- }
-
- //效果函数
- var doPlay=function(){
- switch(opts.effect)
- {
- case "fade": case "top": case "left": if ( index >= navObjSize) { index = 0; } else if( index < 0) { index = navObjSize-1; } break;
- case "leftMarquee":case "topMarquee": if ( index>= 2) { index=1; } else if( index<0) { index = 0; } break;
- case "leftLoop": case "topLoop":
- var tempNum = index - oldIndex;
- if( navObjSize>2 && tempNum==-(navObjSize-1) ) tempNum=1;
- if( navObjSize>2 && tempNum==(navObjSize-1) ) tempNum=-1;
- var scrollNum = Math.abs( tempNum*opts.scroll );
- if ( index >= navObjSize) { index = 0; } else if( index < 0) { index = navObjSize-1; }
- break;
- }
- switch (opts.effect)
- {
- case "fade":conBox.children().stop(true,true).eq(index).fadeIn(opts.delayTime).siblings().hide();break;
- case "top":conBox.stop(true,true).animate({"top":-index*opts.scroll*slideH},opts.delayTime);break;
- case "left":conBox.stop(true,true).animate({"left":-index*opts.scroll*slideW},opts.delayTime);break;
- case "leftLoop":
- if(tempNum<0 ){
- conBox.stop(true,true).animate({"left":-(conBoxSize-scrollNum )*slideW},opts.delayTime,function(){
- for(var i=0;i<scrollNum;i++){ conBox.children().last().prependTo(conBox); }
- conBox.css("left",-conBoxSize*slideW);
- });
- }
- else{
- conBox.stop(true,true).animate({"left":-( conBoxSize + scrollNum)*slideW},opts.delayTime,function(){
- for(var i=0;i<scrollNum;i++){ conBox.children().first().appendTo(conBox); }
- conBox.css("left",-conBoxSize*slideW);
- });
- }break;// leftLoop end
-
- case "topLoop":
- if(tempNum<0 ){
- conBox.stop(true,true).animate({"top":-(conBoxSize-scrollNum )*slideH},opts.delayTime,function(){
- for(var i=0;i<scrollNum;i++){ conBox.children().last().prependTo(conBox); }
- conBox.css("top",-conBoxSize*slideH);
- });
- }
- else{
- conBox.stop(true,true).animate({"top":-( conBoxSize + scrollNum)*slideH},opts.delayTime,function(){
- for(var i=0;i<scrollNum;i++){ conBox.children().first().appendTo(conBox); }
- conBox.css("top",-conBoxSize*slideH);
- });
- }break;//topLoop end
-
- case "leftMarquee":
- var tempLeft = conBox.css("left").replace("px","");
-
- if(index==0 ){
- conBox.animate({"left":++tempLeft},0,function(){
- if( conBox.css("left").replace("px","")>= 0){ for(var i=0;i<conBoxSize;i++){ conBox.children().last().prependTo(conBox); }conBox.css("left",-conBoxSize*slideW);}
- });
- }
- else{
- conBox.animate({"left":--tempLeft},0,function(){
- if( conBox.css("left").replace("px","")<= -conBoxSize*slideW*2){ for(var i=0;i<conBoxSize;i++){ conBox.children().first().appendTo(conBox); }conBox.css("left",-conBoxSize*slideW);}
- });
- }break;// leftMarquee end
-
- case "topMarquee":
- var tempTop = conBox.css("top").replace("px","");
- if(index==0 ){
- conBox.animate({"top":++tempTop},0,function(){
- if( conBox.css("top").replace("px","") >= 0){ for(var i=0;i<conBoxSize;i++){ conBox.children().last().prependTo(conBox); }conBox.css("top",-conBoxSize*slideH);}
- });
- }
- else{
- conBox.animate({"top":--tempTop},0,function(){
- if( conBox.css("top").replace("px","")<= -conBoxSize*slideH*2){ for(var i=0;i<conBoxSize;i++){ conBox.children().first().appendTo(conBox); }conBox.css("top",-conBoxSize*slideH);}
- });
- }break;// topMarquee end
-
-
- }//switch end
- navObj.removeClass(opts.titOnClassName).eq(index).addClass(opts.titOnClassName);
- oldIndex=index;
- };
- //初始化执行
- doPlay();
-
- //自动播放
- if (autoPlay) {
- if( opts.effect=="leftMarquee" || opts.effect=="topMarquee" ){
- index++; inter = setInterval(doPlay, opts.interTime);
- conBox.hover(function(){if(autoPlay){clearInterval(inter); }},function(){if(autoPlay){clearInterval(inter);inter = setInterval(doPlay, opts.interTime);}});
- }else{
- inter=setInterval(function(){index++; doPlay() }, opts.interTime);
- $(this).hover(function(){if(autoPlay){clearInterval(inter); }},function(){if(autoPlay){clearInterval(inter); inter=setInterval(function(){index++; doPlay() }, opts.interTime); }});
- }
- }
-
- //鼠标事件
- var mst;
- if(opts.trigger=="mouseover"){
- navObj.hover(function(){ clearTimeout(mst); index=navObj.index(this); mst = window.setTimeout(doPlay,200); }, function(){ if(!mst)clearTimeout(mst); });
- }else{ navObj.click(function(){index=navObj.index(this); doPlay(); }) }
- nextBtn.click(function(){ index++; doPlay(); });
- prevBtn.click(function(){ index--; doPlay(); });
-
- });//each End
-
- };//slide End
-
- })(jQuery);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。