本文实例为大家分享了jquery简易手风琴插件的封装代码,供大家参考,具体内容如下
理论基础:
基于jquery封装插件,首先我们要清楚封装的代码应该写在哪里?
毫无疑问,写在原型中...
写入原型的好处:
数据共享,节省空间
那么既然知道是写在原型中,那怎么将封装的代码写入原型呢?
首先在jq文件中找到如下代码?
jQuery.fn = jQuery.prototype = {...}
jQuery.fn等于jq对象的原型,而在jq中,jQuery可简写为$
所以我们可以直接在$.fn中编写封装的代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
/*手风琴插件封装*/ $.fn.accordion= function (ele,width) { //随机颜色值 var setBgc= function (eleObj) { var r,g,b; r=Math.floor(Math.random()*256); g=Math.floor(Math.random()*256); b=Math.floor(Math.random()*256); $(eleObj).css( "background-color" , "rgb(" +r+ "," +g+ "," +b+ ")" ); } if (!ele) return ; width=width||100; //定义变量 var eles= this .find(ele); var nowW= this .width()-(eles.length-1)*width; var avgW= this .width()/eles.length; //设置颜色 eles.each( function (index,element) { setBgc(element); }); //添加多个事件 eles.on({ "mouseenter" : function () { $( this ).stop().animate({ width:nowW }).css( "background-size" , "100% 100%" ).siblings().stop().animate({ width:width }).css( "background-size" , "auto" ); }, "mouseleave" : function () { eles.stop().animate({ width:avgW }).css( "background-size" , "auto" ); } }); return this ; } |
以上就是封装的代码,在导入jq文件后,我们就可以直接调用了?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<!DOCTYPE html> < html lang = "en" > < head > < meta charset = "UTF-8" > < title >Title</ title > < style > * { margin: 0; padding: 0; list-style: none; } div { width: 1200px; height: 400px; /*border: 2px solid #000;*/ margin: 100px auto; overflow: hidden; } ul{ width: 1220px; } li { width: 240px; height: 400px; float: left; } </ style > </ head > < body > < div id = "box" > < ul > < li ></ li > < li ></ li > < li ></ li > < li ></ li > < li ></ li > </ ul > </ div > < script src = "js/jquery-1.12.4.js" ></ script > < script src = "jquery-accordion.js" ></ script > < script > //调用封装的插件 $("#box").accordion("li").find("li").each(function (index,ele) { $(ele).css("background-image","url(images/"+(index+1)+".jpg)"); }); </ script > </ body > </ html > |
以上就是简易手风琴插件的封装和调用,最后附上最终效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/qq_38944959/article/details/87869246