基于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 相关文章推荐
jquery绑定原理 简单解析与实现代码分享
Sep 06 Javascript
js前台分页显示后端JAVA数据响应
Mar 18 Javascript
js定时器(执行一次、重复执行)
Mar 07 Javascript
js实现文字滚动效果
Mar 03 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
Dec 14 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
Mar 17 Javascript
JS简单判断滚动条的滚动方向实现方法
Apr 28 Javascript
判断颜色是否合法的正则表达式(详解)
May 03 Javascript
JS计算距当前时间的时间差实例
Dec 29 Javascript
使用vue-infinite-scroll实现无限滚动效果
Jun 22 Javascript
layui radio单选限制下一个radio单选的实例
Sep 03 Javascript
javascript实现雪花飘落效果
Aug 19 Javascript
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
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
PHP file_exists问题杂谈
2012/05/07 PHP
php实现文件下载实例分享
2014/06/02 PHP
thinkPHP5框架设置404、403等http状态页面的方法
2018/06/05 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
js键盘事件的keyCode
2014/07/29 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
为什么说JavaScript预解释是一种毫无节操的机制详析
2018/11/18 Javascript
vue.js指令v-for使用以及下标索引的获取
2019/01/31 Javascript
react项目如何使用iconfont的方法步骤
2019/03/13 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
2019/06/26 Javascript
Vue数字输入框组件使用方法详解
2020/02/10 Javascript
[50:58]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 Mineski vs EG
2018/04/03 DOTA
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python分析nignx访问日志脚本分享
2015/02/26 Python
Python中xrange与yield的用法实例分析
2017/12/26 Python
详解python之协程gevent模块
2018/06/14 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
Wilson体育用品官网:美国著名运动器材品牌
2019/05/12 全球购物
世界顶级户外运动品牌折扣网站:LeftLane Sports
2019/06/12 全球购物
英国计算机商店:Technextday
2019/12/28 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
团日活动总结怎么写
2014/06/25 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
详解Python如何批量采集京东商品数据流程
2022/01/22 Python
python使用torch随机初始化参数
2022/03/22 Python
java版 联机五子棋游戏
2022/05/04 Java/Android