老师对与教铺中Jquery插件的内容

老师对与教铺中Jquery插件的内容

内容有很多维护,环境== 根本理解不了,希望老师可以详细通俗的讲解一下教铺的全部内容。。。有点麻烦 辛苦老师了

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
卡布琦诺 2018-09-25 11:23:15

这个教辅的内容是本课程的拓展内容,是关于插件编写的,首先,假设我们有html结构如下:

<ul id="catagory">
    <li><a href="#">首页</a></li>
    <li><a href="#">免费课</a></li>
    <li><a href="#">职业路径</a></li>
    <li><a href="#">实战</a></li>
</ul>

假设我们要实现当光标移动到a标签上时,a标签向右移动一段距离,离开时a恢复位置,实现方法如下:

$(document).ready(function() {
    $("#catagory a").hover(function() {
        $(this).animate({ paddingLeft: "50px" }, { queue: false, duration: 500 });
    }, function() {
        $(this).animate({ paddingLeft: "0" }, { queue: true, duration: 500 });
    });});

现在,将这个方法进行扩展,写成jQuery插件的形式,以后也能在别的项目中使用,并且可以方便的更改一些属性值,来看看jQuery插件的写法:

1、首先要了解jQuery插件的结构

 $.fn.extend方法编写插件,应该是一个比较好的结构:

//为避免冲突,将我们的方法用一个匿名方法包裹起来
(function($) {
    //扩展这个方法到jquery
    $.fn.extend({
        //插件名字
        pluginname: function() {
            //遍历匹配元素的集合
            return this.each(function() {
                //在这里编写相应代码进行处理 
            });
        }
    });

 //传递jQuery到方法中,这样我们可以使用任何javascript中的变量来代替"$"      
})(jQuery);

2、接下来,给插件中加入一些可以改变的属性,这样使用这个插件的人可以根据自己的需要来做一些更改,同时,提供相应的默认值:

(function($){  
  
    $.fn.extend({   
          
	//将可选择的变量传递给方法
        pluginname: function(options) {  
  
  
            //设置默认值并用逗号隔开
            var defaults = {  
                padding: 20,  
                mouseOverColor : '#000000',  
                mouseOutColor : '#ffffff'  
            }  
                  
            var options =  $.extend(defaults, options);  
  
            return this.each(function() {  
                var o = options;  
                  
                //这里编写相应代码 
                //可以像下边这样获取变量值 
                alert(o.padding);  
              
            });  
        }  
    });  
})(jQuery);

3、实现jQuery插件

(function ($) {
    $.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 = $(this);

                //得到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", "");
                    $(this).animate({ paddingLeft: "0" }, { queue: true, duration: 300 });
                });

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

4、使用插件

//使用插件
$(document).ready(function() {
    $("#catagory").paddingList({ 
    animatePadding: 30, 
    hoverColor: "Red" 
    });
});

jQuery插件的教辅主要是帮助大家拓展如何自己编写插件,jQuery 的插件开发模式主要有三种:

① 通过$.extend()来扩展jQuery

② 通过$.fn向jQuery添加新的方法

③ 通过$.widget()应用jQuery UI 的部件工厂方式创建

常用的是通过$.extend()来扩展jQuery这种方法。

希望可以帮到你!

  • 提问者 慕神6715844 #1
    老师这些 我怎么看不懂啊 还多个方法没学习啊? 很多都跟动画有关系
    2018-09-28 10:10:14
  • 卡布琦诺 回复 提问者 慕神6715844 #2
    这里只是举个例子,这个例子中需要使用动画而已,另外,这部分内容作为了解拓展即可,一般正常开发中,我们都是使用已经封装好的一些插件,直接使用即可,一般情况下不会需要自己进行封装插件哒~
    2018-09-28 10:32:03
提问者 慕神6715844 2018-09-24 22:22:49

http://img1.sycdn.imooc.com//climg/5ba8f3090001078d04030060.jpg

这个文档的全部内容,辛苦老师了~可能它很简单,我确实想正确的了解一下,毕竟自己想可能会出错

卡布琦诺 2018-09-24 10:19:35

建议同学详细的描述你的问题哦,比如你指的教辅是ppt上的内容还是哪里的内容,具体对那一个点不理解呢?~以便于老师准确的定位问题并帮你解答!

  • 提问者 慕神6715844 #1
    老师看我的回答
    2018-09-24 22:21:57
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师