一、心得:
从今年第一天上班开始,一直在学习jquery插件方面的知识,到现在也快有两个星期了,感觉学好这插件不难。因为想学好它,所以一直都很努力!
总结jquery插件书写格式为(如有错误,欢迎指正!):
(function($){ //扩展这个方法到jquery; $.fn.extend({ //将可选择的变量传递给方法如:slideimg slideimg: function(options) { //参数和默认值 var defaults = { //默认内容区 }; var options = $.extend(defaults, options); //遍历匹配元素的集合 return this.each(function() { //执行内容区: }); } }); })(jQuery);
二、近两天,《jquery插件之图片轮显(一)》这一篇章内容做了一下整理,效果图:
三、实现的主要功能有:
- 
    - 左右点击移动;
- 中间小圆点点击移动;
- 自动运行(暂定);
- 可任意添加图片的数量;
- 小圆点会根据图片的多少而自动增减;
- 可以选择或取消小圆点的显示(默认为显示cen_dot_bar:'ture',取消可设置cen_dot_bar为其它任意非'ture'的值);
- 。。。
 
四:jquery源码:
(function($){ 
    //扩展这个方法到jquery; 
    $.fn.extend({   
        //将可选择的变量传递给方法 
        slideimg: function(options) {  
            //参数和默认值 
            var defaults = { 
               tol_class:'.goleftbtn',       //获得点击左按钮的class 
               tor_class:'.gorightbtn',      //获得点击右按钮的class 
               slide_class:'.slide_tolr',    //获得滑动层的class 
               center_class:'.star',         //获得中间点的class 
               imgshow_num:'3',      //最多可见图片的张数; 
               cen_dot_bar:'ture',   //当cen_dot_bar为'ture'时中间显示,否则关闭; 
               gostart_on:'ture',   //自动运行开关 
               dotimg_src:'../images/slideimg/cir.gif',   //中间点src 
               centerbar_class:'.center_dot',              //中间点所在层的class 
               runtime:'2000'      //自动运行时间 
            }; 
            options = $.extend(defaults, options); 
            var count = 1; 
            var checkname; 
            //遍历匹配元素的集合 
            return this.each(function() { 
            var o =options; 
            //获得最外层的ID; 
            var thisid = $(this).attr("id"); 
            //转化:去除中间点的class的’.‘ 
            var cenclass =o.center_class.substr('1'); 
            //获得中间点击点处的class 
            var centerBar = $($(this).find(o.centerbar_class),$(this)); 
            var slidebar = $($(this).find(o.slide_class),$(this)); 
            //最多滑动的次数(Math.ceil()方法向上取整) 
            o.maxnum = Math.ceil(slidebar.children().prev().size()/o.imgshow_num); 
            //设置可见层的宽 
            o.slide_wid = slidebar.parent().width(); 
            //设置滑动层的宽; 
            slidebar.css("width",o.slide_wid*o.maxnum+"px"); 
            //添加中间处的点击点 
            if(o.cen_dot_bar === 'ture'){ 
                for( i=1;i<=o.maxnum;i++){ 
                    $(centerBar).append( 
                        "<span" + ' ' + "name="+i+ " " +"class="+"'"+cenclass+' '+cenclass+i +"'" + ">"+"<img src="+ o.dotimg_src +" />"+"</span>" 
                    ); 
                } 
            } 
            var goleftbtn = $($(this).find(o.tol_class),$(this)); 
            var gorightbtn = $($(this).find(o.tor_class),$(this)); 
            var clickCenter = $($(this).find(o.center_class),$(this)); 
            //点击向左按钮时; 
            $(goleftbtn).click(function(){ 
                if(count > 1){ 
                  count--; 
                  com_cen_src(); 
                }else{ 
                  count = o.maxnum; 
                  com_cen_src(); 
                } 
            }); 
            //点击向右按钮时; 
            $(gorightbtn).click(function(){ 
                if( count < o.maxnum){ 
                  count++; 
                  com_cen_src();      
                }else{ 
                  slidebar.animate({left:'0'},{queue:false}); 
                  count = 1; 
                  com_cen_src(); 
                } 
            }); 
            //点击中间点时 
            $(clickCenter).click(function(){     
                   checkname = $(this).attr("name"); 
                   count = checkname; 
                   com_cen_src(); 
            }); 
            //调置中间点击处的透明度 
            $(o.center_class+" img").css({"opacity":"0.3","cursor":"pointer"}); 
            $(o.center_class+"1"+" img").css("opacity","0.95"); 
            $(o.tol_class+" img" +","+o.tor_class+" img").css("opacity","0.3"); 
            $(o.tol_class+" img" +","+o.tor_class+" img").hover(function(){ 
                $(this).css("opacity","1");  
                },function(){ 
                $(this).css("opacity","0.4");  
            });
            function com_cen_src(){ 
                slidebar.animate({left:'-' + o.slide_wid*(count-1)},{queue:false}); 
                $("#"+ thisid +" "+o.center_class+" img").css("opacity","0.3"); 
                $("#"+ thisid +" "+o.center_class + count + " img").css("opacity","0.95"); 
            } 
            });  
        }  
    });  
})(jQuery);
 
 
        
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号