基于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 相关文章推荐
aspx中利用js实现确认删除代码
Jul 22 Javascript
当json键为数字时的取值方法解析
Nov 15 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
Aug 15 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
详解Bootstrap的iCheck插件checkbox和radio
Aug 24 Javascript
AngularJs bootstrap详解及示例代码
Sep 01 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
Feb 13 Javascript
纯JS实现弹性导航条效果
Mar 06 Javascript
Node.JS利用PhantomJs抓取网页入门教程
May 19 Javascript
Vue利用canvas实现移动端手写板的方法
May 03 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
Jul 24 Javascript
关于引入vue.js 文件的知识点总结
Jan 28 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
骨王战斗力在公会成员中排不进前五,却当选了会长,原因竟是这样
2020/03/02 日漫
PHP调用三种数据库的方法(1)
2006/10/09 PHP
PHP编码规范之注释和文件结构说明
2010/07/09 PHP
PHPCMS的使用小结
2010/09/20 PHP
PHP关联数组的10个操作技巧
2013/01/21 PHP
PHP中多维数组的foreach遍历示例
2014/06/13 PHP
简单谈谈favicon
2015/06/10 PHP
PHP实现操作redis的封装类完整实例
2015/11/14 PHP
WordPress中邮件的一些修改和自定义技巧
2015/12/15 PHP
php查询操作实现投票功能
2016/05/09 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
php操作redis常见方法示例【key与value操作】
2020/04/14 PHP
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
javascript之typeof、instanceof操作符使用探讨
2013/05/19 Javascript
不同Jquery版本引发的问题解决
2013/10/14 Javascript
深入理解JavaScript系列(30):设计模式之外观模式详解
2015/03/03 Javascript
Bootstrap每天必学之js插件
2015/11/30 Javascript
jQuery验证插件validate使用方法详解
2020/09/13 Javascript
灵活使用数组制作图片切换js实现
2016/07/28 Javascript
JS实现微信里判断页面是否被分享成功的方法
2017/06/06 Javascript
EasyUI的TreeGrid的过滤功能的解决思路
2017/08/08 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
js实现转动骰子模型
2019/10/24 Javascript
Python高级应用实例对比:高效计算大文件中的最长行的长度
2014/06/08 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
python实现图片批量压缩程序
2018/07/23 Python
Python编写合并字典并实现敏感目录的小脚本
2019/02/26 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
英语简历自我评价
2014/01/26 职场文书
市场营销专业应届生自荐信
2014/06/19 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
工作年限证明模板
2014/11/01 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
2021-4-5课程——SQL Server查询【3】
2021/04/05 SQL Server
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB