jquery插件之图片轮显(一)----整理2011.02.24

一、心得:

      从今年第一天上班开始,一直在学习jquery插件方面的知识,到现在也快有两个星期了,感觉学好这插件不难。因为想学好它,所以一直都很努力!

总结jquery插件书写格式为(如有错误,欢迎指正!):

(function($){
    //扩展这个方法到jquery;
    $.fn.extend({   
        //将可选择的变量传递给方法如:slideimg
        slideimg: function(options) {  
            //参数和默认值
            var defaults = {
            //默认内容区
            }; 
            var options = $.extend(defaults, options); 

            //遍历匹配元素的集合
            return this.each(function() {
            //执行内容区: 

            });  
        }  
    });  
})(jQuery);
二、近两天,《jquery插件之图片轮显(一)》这一篇章内容做了一下整理,效果图:

pic2

三、实现的主要功能有: 
    1. 左右点击移动;
    2. 中间小圆点点击移动;
    3. 自动运行(暂定);
    4. 可任意添加图片的数量;
    5. 小圆点会根据图片的多少而自动增减;
    6. 可以选择或取消小圆点的显示(默认为显示cen_dot_bar:'ture',取消可设置cen_dot_bar为其它任意非'ture'的值);
    7. 。。。
    四: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);
    五:相关HTML、CSS源代码请见下载文件http://files.cnblogs.com/waitingbar/slideimg2.rar
    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 1
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论 1
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值