基于jquery打造的百分比动态色彩条插件


Posted in Javascript onSeptember 19, 2012

以前没写过jquery插件,在开发这个时,写一下代码,又看一下jquery插件的定义(如何开发之类的东东),来来去去的。

之所以要写这个插件,主要是为了往后的项目中方便实现这类型的功能,在之前做问卷调查那个应用中,就用到这个来显示结果,但当时开发时并不用是插件的,一大堆代码,看也烦,用起来很麻烦(当时就调了一个上午)。

还好,这个功能比较简单,正好合适新手写插件。

具体的效果如图:

基于jquery打造的百分比动态色彩条插件

这个也算是简单的比例图吧。
插件的具体的代码如下:

; (function ($) { 
$.fn.percentbar = function (o) { 
var options1 = $.extend({ 
percent:[],//比例数组,如:[0.5,0.4,0.6] 长度大于1时,按顺序发配比例 
bar_bgcolor:'#EFEFEF',//色彩条的背景颜色 
bar_bordercolor:'#E2E2E2',//色彩条的边框颜色 
bar_borderwidth:1,//色彩条的边框宽度 
width:250,//色彩条的宽度 
height:14,//色彩条的高度 
callback:function(){}//l回调函数(色彩条显示完后) 
},o); 
var g=this.length; 
var styleData=InitColor(); 
$(this).css({ "background": "none repeat scroll 0 0 #EFEFEF", "border": "1px solid #E2E2E2" ,"height": options1.height+"px","width": options1.width+"px","background-color":options1.bar_bgcolor,"border-color":options1.bar_bordercolor,"border-width":options1.bar_borderwidth+"px"}); 
$(this).each(function(index, element) { 
$(element).append(" <p style=\"float: left; margin: 0;padding: 0;\"><span style=\"float: left;height: "+options1.height+"px;overflow: hidden;background-color:"+styleData[index]+";width:0px\"></span></p>"); 
if(g==index+1) 
{ 
$(element).find("span").animate({ width: Math.round(options1.percent[index] * options1.width) }, "slow",options1.callback) 
}else 
{ 
$(element).find("span").animate({ width: Math.round(options1.percent[index] * options1.width) }, "slow") 
} 
}); 
//初始化色彩条 
function InitColor() { 
var o = []; 
var n = ["#5dbc5b", "#6c81b6", "#9eb5f0", "#a5cbd6", "#aee7f8", "#c2f263", "#d843b3", "#d8e929", "#e58652", "#e7ab6d", "#ee335f", "#fbe096", "#ffc535"]; 
var q = n.slice(); 
for (var p = 0, l = g; p < l; p++) { 
var k = Math.floor(Math.random() * q.length); 
o.push(q[k]); 
q.splice(k, 1); 
if (q.length == 0) { 
q = n.slice() 
} 
} 
return o 
} 
} 
})(jQuery);

本来想把css独立出来的,但最后还是直接出到jquery插件里了,这样使用起来更加方便的说。

例:

$(".good").percentbar({ percent: [0.5, 0.4], width: 500 }); 
<div class=".good"><div> 
<div class=".good"><div>

方法参数说明:
percent:比例数组(占的比例),如:[0.5,0.4,0.6] 长度大于1时,按顺序发配比例
bar_bgcolor:色彩条的背景颜色
bar_bordercolor:色彩条的边框颜色
bar_borderwidth:色彩条的边框宽度
width:色彩条的宽度
height:色彩条的高度
callback:回调函数(色彩条显示完后)
Javascript 相关文章推荐
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
jquery插件qrcode在线生成二维码
Apr 26 Javascript
jQuery实现强制cookie过期方法汇总
May 22 Javascript
简单实现Vue的observer和watcher
Dec 21 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
Sep 27 Javascript
JavaScript中错误正确处理方式小结你用对了吗
Oct 10 Javascript
微信小程序利用canvas 绘制幸运大转盘功能
Jul 06 Javascript
详解小程序输入框闪烁及重影BUG解决方案
Aug 31 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
Jul 04 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
jQuery Ajax提交表单查询获得数据实例代码
Sep 19 #Javascript
基于JQuery的多标签实现代码
Sep 19 #Javascript
一样的table?不一样的table(可编辑状态table)
Sep 19 #Javascript
jQuery学习笔记 获取jQuery对象
Sep 19 #Javascript
jQuery学习笔记 更改jQuery对象
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 属性处理
Sep 19 #Javascript
You might like
漫荒推荐:画风超赞的国风漫画推荐 超长假期不无聊
2020/03/08 国漫
如何在PHP中进行身份认证
2006/10/09 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
表单提交验证类
2006/07/14 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
JS面向对象编程 for Cookie
2010/09/19 Javascript
基于jquery的用鼠标画出可移动的div
2012/09/06 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
JavaScript弹出对话框的三种方式
2016/03/23 Javascript
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
2016/05/10 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
js/jq仿window文件夹框选操作插件
2017/03/08 Javascript
Vue.js常用指令之循环使用v-for指令教程
2017/06/27 Javascript
Taro集成Redux快速上手的方法示例
2018/06/21 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
haskell实现多线程服务器实例代码
2013/11/26 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
Python同步遍历多个列表的示例
2019/02/19 Python
Python3视频转字符动画的实例代码
2019/08/29 Python
基于python判断字符串括号是否闭合{}[]()
2020/09/21 Python
Pycharm添加虚拟解释器报错问题解决方案
2020/10/13 Python
美国非常受欢迎的Spa品牌:Bliss必列斯
2018/04/10 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
面向对象概念面试题(.NET)
2016/11/04 面试题
给校长的建议书400字
2014/05/15 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
学术研讨会欢迎词
2015/01/26 职场文书
毕业典礼邀请函
2015/01/31 职场文书
2015年社区消防安全工作总结
2015/10/14 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
Mysql文件存储图文详解
2021/06/01 MySQL