基于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中的函数
Jan 22 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
Jan 24 Javascript
node.js中使用node-schedule实现定时任务实例
Jun 03 Javascript
Javascript实现飞动广告效果的方法
May 25 Javascript
jQuery实现的左右移动焦点图效果
Jan 14 Javascript
Node.js复制文件的方法示例
Dec 29 Javascript
详解PHP后期静态绑定分析与应用
Mar 21 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
Aug 16 Javascript
Element-UI中Upload上传文件前端缓存处理示例
Feb 21 Javascript
详解JWT token心得与使用实例
Aug 02 Javascript
JQuery常用简单动画操作方法回顾与总结
Dec 07 jQuery
js实现自动播放匀速轮播图
Feb 06 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微信API接口类
2016/08/22 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
JS 有趣的eval优化输入验证实例代码
2013/09/22 Javascript
jquery更换文章内容与改变字体大小代码
2013/09/30 Javascript
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
js获取判断上传文件后缀名的示例代码
2014/02/19 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
jQuery实现的分页功能示例
2017/01/22 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
angular.js中解决跨域问题的三种方式
2017/07/12 Javascript
vue cli webpack中使用sass的方法
2018/02/24 Javascript
Vue学习笔记之计算属性与侦听器用法
2019/12/07 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
2020/07/26 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
python实现智能语音天气预报
2019/12/02 Python
Python面向对象特殊属性及方法解析
2020/09/16 Python
python爬取2021猫眼票房字体加密实例
2021/02/19 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
银行类自荐信
2014/02/04 职场文书
技术总监管理职责范本
2014/03/06 职场文书
西湖英语导游词
2015/02/06 职场文书
调解书格式范本
2015/05/20 职场文书
Go语言使用select{}阻塞main函数介绍
2021/04/25 Golang