基于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的变量作用域深入理解
Oct 25 Javascript
用js写了一个类似php的print_r输出换行功能
Feb 18 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
Dec 08 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
浅谈javascript中字符串String与数组Array
Dec 31 Javascript
浅谈angularjs module返回对象的坑(推荐)
Oct 21 Javascript
vue-resource拦截器设置头信息的实例
Oct 27 Javascript
Express系列之multer上传的使用
Oct 27 Javascript
基于jQuery实现定位导航位置效果
Nov 15 jQuery
微信小程序自定义音乐进度条的实例代码
Aug 28 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
JS动态图片的实现方法完整示例
Jan 13 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等比例缩放图片及剪切图片代码分享
2016/02/13 PHP
深入分析PHP优化及注意事项
2016/07/04 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
php修改数组键名的方法示例
2017/04/15 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
thinkPHP实现基于ajax的评论回复功能
2018/06/22 PHP
PHP时间类完整代码实例
2021/02/26 PHP
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
JavaScript实现找出字符串中第一个不重复的字符
2014/09/03 Javascript
JQuery拖动表头边框线调整表格列宽效果代码
2014/09/10 Javascript
兼容主流浏览器的jQuery+CSS 实现遮罩层的简单代码
2014/10/14 Javascript
JavaScript输出当前时间Unix时间戳的方法
2015/04/06 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
jQuery使用$.ajax进行异步刷新的方法(附demo下载)
2015/12/04 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
2017/06/15 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
jQuery+CSS实现的标签页效果示例【测试可用】
2018/08/14 jQuery
jquery拖拽自动排序插件使用方法详解
2020/07/20 jQuery
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
jQuery实现当拉动滚动条到底部加载数据的方法分析
2019/01/24 jQuery
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
移动端HTML5 input常见问题(小结)
2020/09/28 HTML / CSS
《分一分》教学反思
2014/04/13 职场文书
幼儿教师辞职信
2015/02/27 职场文书
保送生自荐信范文
2015/03/26 职场文书
高老头读书笔记
2015/06/30 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Spring Boot优化后启动速度快到飞起技巧示例
2022/07/23 Java/Android