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