jquery简易手风琴插件的封装

本文实例为大家分享了jquery简易手风琴插件的封装代码,供大家参考,具体内容如下

理论基础:

基于jquery封装插件,首先我们要清楚封装的代码应该写在哪里?

毫无疑问,写在原型中...

写入原型的好处:

数据共享,节省空间

那么既然知道是写在原型中,那怎么将封装的代码写入原型呢?

首先在jq文件中找到如下代码?

jQuery.fn = jQuery.prototype = {...}

jQuery.fn等于jq对象的原型,而在jq中,jQuery可简写为$

所以我们可以直接在$.fn中编写封装的代码

/*手风琴插件封装*/

$.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文件后,我们就可以直接调用了?

<!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>

以上就是简易手风琴插件的封装和调用,最后附上最终效果图:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

以上是 jquery简易手风琴插件的封装 的全部内容, 来源链接: utcz.com/p/218175.html

回到顶部