基于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动态增加text元素以及删除文本内容实例代码
Jul 01 Javascript
javascript实现滑动解锁功能
Dec 31 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
javascript操作表格排序实例分析
May 06 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
Feb 16 Javascript
AngularJS入门教程之ng-class 指令用法
Aug 01 Javascript
AngularJS基础 ng-value 指令简单示例
Aug 03 Javascript
JS获取鼠标坐标并且根据鼠标位置不同弹出不同内容
Jun 12 Javascript
说说node中的可读流和可写流的区别
Jun 01 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
Jun 25 Javascript
Vue实现点击按钮复制文本内容的例子
Nov 09 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脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
jquery ajax传递中文参数乱码问题及解决方法说明
2014/02/07 Javascript
javascript操作excel生成报表全攻略
2014/05/04 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
浅谈javascript的call()、apply()、bind()的用法
2016/02/21 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
jQuery源码分析之init的详细介绍
2017/02/13 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Centos5.x下升级python到python2.7版本教程
2015/02/14 Python
整理Python中的赋值运算符
2015/05/13 Python
Python编程中的文件操作攻略
2015/10/16 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
python简单实例训练(21~30)
2017/11/15 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
浅谈python的深浅拷贝以及fromkeys的用法
2019/03/08 Python
使用python获取(宜宾市地震信息)地震信息
2019/06/20 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
python使用pip安装SciPy、SymPy、matplotlib教程
2019/11/20 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
纯CSS实现预加载动画效果
2017/09/06 HTML / CSS
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
介绍一下linux的文件系统
2015/10/06 面试题
2015年高校教师个人工作总结
2015/05/25 职场文书
鉴史问廉观后感
2015/06/10 职场文书
写作技巧:优秀文案必备的3种结构
2019/08/19 职场文书
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android
Oracle中日期的使用方法实例
2022/07/07 Oracle