基于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
Feb 25 Javascript
jQuery的三种$()
Dec 30 Javascript
jquery实现输入框动态增减的实例代码
Jul 14 Javascript
Javascript模块化编程详解
Dec 01 Javascript
Javascript实现计算个人所得税
May 10 Javascript
js实现简单计算器
Nov 22 Javascript
浅析JavaScript中浏览器的兼容问题
Apr 19 Javascript
AngularJS入门教程一:路由用法初探
May 27 Javascript
微信公众号平台接口开发 菜单管理的实现
Aug 14 Javascript
vue-cli在 history模式下的配置详解
Nov 26 Javascript
jQuery实现视频展示效果
May 30 jQuery
vue的webcamjs集成方式
Nov 16 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
推荐几个开源的微信开发项目
2014/12/28 PHP
PHP学习笔记(一):基本语法之标记、空白、和注释
2015/04/17 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
IE6已终止操作问题的2种情况及解决
2014/04/23 Javascript
20条学习javascript的编程规范的建议
2014/11/28 Javascript
浅谈Javascript实现继承的方法
2015/07/06 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
Angularjs过滤器使用详解
2016/05/25 Javascript
jQuery 更改checkbox的状态,无效的解决方法
2016/07/22 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
iOS + node.js使用Socket.IO框架进行实时通信示例
2017/04/14 Javascript
详解Element 指令clickoutside源码分析
2019/02/15 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python中AND、OR的一个使用小技巧
2015/02/18 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
python 利用toapi库自动生成api
2020/10/19 Python
详解css position 5种不同的值的用法
2019/07/30 HTML / CSS
canvas因为图片资源不在同一域名下而导致的跨域污染画布的解决办法
2019/01/18 HTML / CSS
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
员工自我鉴定
2013/10/09 职场文书
卫校护理专业毕业生求职信
2013/11/26 职场文书
金融专业大学生职业生涯规划范文
2014/01/16 职场文书
幼儿园消防演练方案
2014/02/13 职场文书
乡镇办公室工作决心书
2014/03/11 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
硕士学位申请报告
2015/05/15 职场文书