jq 幻灯片插件制作

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="Author" content="博客名:仙梦之飘  QQ:894547549">
<meta name="Keywords" content="">
<meta name="Description" content="">
<head>
<title>幻灯片插件制作</title>
<style type="text/css">
*{margin: 0;padding: 0;}
.wrap{ width:800px; margin:0 auto;}
.slider{width: 400px;height: 300px; position: relative;margin: 10px auto;overflow: hidden;border:2px #c0c9cf solid;}
.slider_pic li{width:400px;height: 300px;font:700 40px/300px "微软雅黑";text-align: center;color: #fff;list-style: none;}
.num{width: 160px;position: absolute;right: 10px;bottom: 10px; z-index:10;}
.num span{display: inline-block;color:#fff;font-weight:bold;cursor:pointer;margin-right: 5px;background: #db7093;width: 24px;height: 24px;text-align: center;line-height: 24px;border-radius: 10px;}
.num span.cur{background:#000;}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
<script>
//jq 的easing效果添加,可以选择需要的效果来添加
jQuery.extend(jQuery.easing,{
    easeOutBounce: function (x, t, b, c, d) {
        if ((t/=d) < (1/2.75)) {
            return c*(7.5625*t*t) + b;
        } else if (t < (2/2.75)) {
            return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
        } else if (t < (2.5/2.75)) {
            return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
        } else {
            return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
        }
    }
});

(function($){
        $.fn.extend({
            mySlider:function(options){
                var that=$(this);
                var configs={
                    'slideCon':"ul",//容器
                    'slideTag':"li",//图片
                    'direction': 'vertical',//切换效果
                    'method'   : 'click',//鼠标事件
                    'speed'    : 5000 ,//切换时间
                    'animateSpeed':600,//运动速度
                    'auto':true//自动播放
                };
                options= $.extend(configs,options);
                var slide=that.find(configs.slideCon);
                var oLi=slide.find(configs.slideTag);
                var oLen=oLi.length;
                var oWidth=oLi.width();
                var oHeight=oLi.height();
                var oNum=$("<div class='num'></div>");
                var iTimer=null;
                var index=0;
                var peel = 0;
                for(var i=0;i<oLen;i++){
                    oNum.append('<span>'+(i+1)+'</span>');
                }
                slide.css({
                    'position': 'absolute',
                    'top'     : '0',
                    'left'    : '0'
                });
                that.append(oNum);
                var oSpan=oNum.find('span');
                oSpan.eq(0).addClass("cur");
                 function SlideImg(n){
                    switch(options.direction){
                        case  'vertical':
                            peel=parseInt(n * oHeight);
                            slide.stop(true,false).animate({'top':-peel},configs.animateSpeed,"easeOutBounce");
                            break;
                        case 'horizontal':
                            oLi.css('float', 'left');
                            peel=parseInt(n*oWidth);
                            slide.css({width:oLen*parseInt(oWidth)}).stop(true,false).animate({'left':-peel},configs.animateSpeed,"easeOutBounce");
                            break;
                        case 'none':
                            oLi.hide().eq(n).show();
                            break;
                        case 'fade':
						     oLi.css({
								   'position': 'absolute',
									'top'     : '0',
									'left'    : '0'
								   })
                             oLi.stop(true,false).animate({opacity: 0}, 800).css('z-index',1).eq(n).css('z-index',9).stop(true,false).animate({opacity: 1}, 800);
                                
                            break;
                            
                    }
                     oSpan.removeClass("cur").eq(n).addClass("cur");
                }

                if(configs.auto){
                    autoPlay();
                }
                function autoPlay(){
                  iTimer=setInterval(function(){
                        SlideImg(index);
                        index++;
                        if(index==oLen){
                            index=0;
                        }
                    },configs.speed);
                }
               that.hover(function(){
                    clearInterval(iTimer);
                },function(){
                  if(configs.auto){ autoPlay();}
                });
               oSpan.bind(options.method,function(){
                 if(configs.auto){clearInterval(iTimer);}
                 index=oSpan.index(this);
            
                 SlideImg(index);
               });

               
                        return this;
            }
        })
    })(jQuery);



    $(function(){
        $('#slider').mySlider({
          'direction': 'vertical',
          'method'   : 'mouseenter',
          'speed'    : 2000
        });
        $('#slider2').mySlider({
          'direction': 'fade',
          'slideCon':"ol",
		  'method'   : 'mouseenter',
          'speed'    : 3000
        });
        $('#slider3').mySlider({
          'direction': 'horizontal',
          'method'   : 'mouseenter',
          'slideCon':"ol",
          'speed'    : 3000
        });
        $('#slider4').mySlider({
          'direction': 'none',
          'method'   : 'mouseenter',
          'slideCon':"ol",
          'speed'    : 3000
        });
       
    })         
</script>
</head>
<body>
<div class="wrap">
<code>   $('#slider').mySlider({
          'slideCon':"ul",//默认容器,可以选择自己需要的<br>
          'slideTag':"li",//默认图片切换标签元素,可以选择自己需要的<br>
          'direction': 'vertical', //默认是垂直方向,总共有4种vertical,horizontal,fade,none<br>
          'method'   : 'mouseenter',//默认是点击事件,根据自己需要的事件来填click,mouseenter<br>
          'speed'    : 2000 , //默认是切换时间5000<br>
          'animateSpeed':600,//运动速度<br>
          'auto':true//默认自动播放,不自动播放的值,false<br>
          如果是设置fade效果按钮是在图片上面的需要设置.num的z-index:10以上的数值
        });   
</code>
  <h1>滚动垂直方向效果</h1>
  <div class="slider" id="slider">
    <div class="slider_pic">
      <ul>
        <li style="background: #228b22">1</li>
          <li style="background:#4169e1">2</li>
          <li style="background: #ffc0cb">3</li>
          <li style="background: #daa520">4</li>
        </ul>
         </div>
   </div>
  <h1>渐变效果效果</h1>
  <div class="slider" id="slider2">
    <div class="slider_pic">
      <ol>
        <li style="background: #228b22">1</li>
          <li style="background:#4169e1">2</li>
          <li style="background: #ffc0cb">3</li>
          <li style="background: #daa520">4</li>
        </ol>
        </div>
   </div>
  <h1>滚动水平方向效果</h1>
  <div class="slider" id="slider3">
    <div class="slider_pic">
      <ol>
        <li style="background: #228b22">1</li>
          <li style="background:#4169e1">2</li>
          <li style="background: #ffc0cb">3</li>
          <li style="background: #daa520">4</li>
        </ol>
     </div>
   </div>
  <h1>切换方向效果</h1>
  <div class="slider" id="slider4">
    <div class="slider_pic">
      <ol>
        <li style="background: #228b22">1</li>
          <li style="background:#4169e1">2</li>
          <li style="background: #ffc0cb">3</li>
          <li style="background: #daa520">4</li>
        </ol>
     </div>
   </div>
</div>
</body>
</html>

 

posted on 2013-08-14 15:15  仙梦之飘  阅读(730)  评论(0编辑  收藏  举报