鼠标放上去,列表菜单后移动的jquery代码--jquery插件的写法

来源:互联网 发布:dd命令制作linux备份 编辑:程序博客网 时间:2024/04/30 13:00

html代码:

<ul id="catagory">
    <li id="7"><a href="#">jQuery</a></li>
    <li><a href="#">Asp.net</a></li>
    <li><a href="#">Sql Server</a></li>
    <li><a href="#">CSS</a></li>
</ul>

 

js代码:

//为避免冲突,将定义的方法用一个匿名的方法包裹起来
(function ($) {
     //扩展这个方法到jquery
  //$.fn是jquery的命名空间,加上fn上的属性和方法,会对jquery每一个实例有效
     //如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了
  //那么你可以这样子:$("#div").abc();
  //jQuery.extend(object); 用来在jQuery命名空间上增加新函数。
 //jQuery.fn.extend(object);给jQuery对象添加方法。

 

    $.fn.extend({
        //(方法)插件名称 - paddingList
  //将可选择的变量传给方法
        paddingList: function (options) {

            //参数和默认值
            var defaults = {
                animatePadding: 10,
                hoverColor: "Black",
    
            };
   
            var options = $.extend(defaults, options);
   
   //遍历匹配函数的集合
            return this.each(function () {
                var o = options;

                //将元素集合赋给变量 本例中是 ul对象
                var obj = $("ul");

                //得到ul中的a对象
                var items = $("li a", obj);

                //添加hover()事件到a
                items.hover(function () {
                    $(this).css("color", o.hoverColor);
                    //queue false表示不添加到动画队列中
                    $(this).animate({ paddingLeft: o.animatePadding }, { queue: false, duration: 300 });

                }, function () {
                    $(this).css("color", "#000000");
                    $(this).animate({ paddingLeft: "0" }, { queue: true, duration: 300 });
                });

            });
        }
    });
})(jQuery);

 

 

使用插件的方法:

$(document).ready(function(){

        $("#catagory").paddingList({ animatePadding:30, hoverColor:"Red"});

});

 

原创粉丝点击