美文网首页
用实例讲解jQuery插件封装思路-来自于三人行慕课

用实例讲解jQuery插件封装思路-来自于三人行慕课

作者: 三人行慕课 | 来源:发表于2019-06-23 16:14 被阅读0次

    原文链接:https://www.3mooc.com/front/articleinfo/220

    之前发过一个jQuery手风琴效果的练习案例,今天就拿这个案例来分享一下封装插件的思路。

    HTML和CSS的布局和功能基本实现就不在这里写了,可以去:http://www.3mooc.com/front/articleinfo/201

    这里查看。

    我们今天要做的是把这个功能封装成一个插件,只需要调用一个方法就能使用这个手风琴效果,如图:

    接下来我们进行对功能封装的讲解。

    //给jQuery添加accordion(手风琴的英文)方法

    $.fn.accordion = function (colors, width) {

        //设置默认的colors和width参数,避免传参数时报错

      colors = colors || [];

      width = width || 0;

      var $li = this.find("li");

      var boxLength = this.width();

      var maxLength = boxLength - ($li.length - 1) * width;

      var avgLength = boxLength / $li.length;

      //更改li的颜色,使用时可以通过声明数组的方式设置颜色

      $li.each(function (i, e) {

        $(e).css("backgroundColor", colors[i]);

      });

      //给li注册鼠标经过事件

      //给li的宽度进行改变

      $li.on("mouseenter", function () {

        $(this).stop().animate({width: maxLength}).siblings().stop()

        .animate({width: width})

      });

        //鼠标离开时宽度改变

      $li.on("mouseleave", function () {

        $li.stop().animate({width: avgLength});

      });

    };

    把这段代码保存成一个js文档,和jQuery文件一起引入到HTML中,就可以通过使用一个accordion()方法来使用了。

    在调用这个方法的时候,可以在括号里传递colors参数和width参数来设置每个li的颜色和宽度。li的背景图片可以通过CSS设置。

    相关文章

      网友评论

          本文标题:用实例讲解jQuery插件封装思路-来自于三人行慕课

          本文链接:https://www.haomeiwen.com/subject/hztwqctx.html