基于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中使用replaceAll()函数实现字符替换的方法
Dec 25 Javascript
非常有用的40款jQuery 插件推荐(系列二)
Dec 25 Javascript
JS获取URL中的参数数据
Dec 05 Javascript
使用javascript获取页面名称
Dec 23 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
Mar 03 Javascript
JS实现的5级联动Select下拉选择框实例
Aug 17 Javascript
jQuery中判断对象是否存在的方法汇总
Feb 24 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 Javascript
jQuery使用ajax_动力节点Java学院整理
Jul 05 jQuery
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
Mar 22 Javascript
TypeScript中的方法重载详解
Apr 12 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抽象类 介绍
2012/06/13 PHP
php 发送带附件邮件示例
2014/01/23 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
php的debug相关函数用法示例
2016/07/11 PHP
&amp;lt;script defer&amp;gt; defer 是什么意思
2009/05/10 Javascript
javascript 操作文件 实现方法小结
2009/07/02 Javascript
javascript 写类方式之八
2009/07/05 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
jquery实现div阴影效果示例代码
2013/09/16 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
Vue 实现树形视图数据功能
2018/05/07 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
jQuery实现的简单日历组件定义与用法示例
2018/12/24 jQuery
Vue.js@2.6.10更新内置错误处机制Fundebug同步支持相应错误监控
2019/05/13 Javascript
详解element上传组件before-remove钩子问题解决
2020/04/08 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python实现隐马尔科夫模型HMM
2018/03/25 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
2020/06/14 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
婚鞋、新娘鞋、礼服鞋、童鞋:Nina Shoes
2019/09/04 全球购物
自我鉴定范文200字
2013/10/02 职场文书
教师校本培训方案
2014/02/26 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
党的群众路线教育实践活动对照检查材料范文
2014/09/24 职场文书
民用住房租房协议书
2014/10/29 职场文书
文明礼仪倡议书
2015/04/28 职场文书
python生成可执行exe控制Microsip自动填写号码并拨打功能
2021/06/21 Python
利用JavaScript写一个简单计算器
2021/11/27 Javascript