(jquery插件)打造百分比动态色彩条

以前没写过jquery插件,在开发这个时,写一下代码,又看一下jquery插件的定义(如何开发之类的东东),来来去去的。

      之所以要写这个插件,主要是为了往后的项目中方便实现这类型的功能,在之前做问卷调查那个应用中,就用到这个来显示结果,但当时开发时并不用是插件的,一大堆代码,看也烦,用起来很麻烦(当时就调了一个上午)。

还好,这个功能比较简单,正好合适新手写插件。

具体的效果如图:

这个也算是简单的比例图吧。

插件的具体的代码如下:

 1 ; (function ($) {
 2     $.fn.percentbar = function (o) {
 3         var options1 = $.extend({
 4             percent:[],//比例数组,如:[0.5,0.4,0.6] 长度大于1时,按顺序发配比例
 5             bar_bgcolor:'#EFEFEF',//色彩条的背景颜色
 6             bar_bordercolor:'#E2E2E2',//色彩条的边框颜色
 7             bar_borderwidth:1,//色彩条的边框宽度
 8             width:250,//色彩条的宽度
 9             height:14,//色彩条的高度
10             callback:function(){}//l回调函数(色彩条显示完后)
11         },o);
12         var g=this.length;
13         var styleData=InitColor();
14         $(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"});
15         $(this).each(function(index, element) {
16             $(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>");
17             if(g==index+1)
18             {
19             $(element).find("span").animate({ width: Math.round(options1.percent[index] * options1.width) }, "slow",options1.callback)
20             }else
21             {
22             $(element).find("span").animate({ width: Math.round(options1.percent[index] * options1.width) }, "slow")
23             }
24 
25         });
26         
27         //初始化色彩条
28         function InitColor() {
29             var o = [];
30             var n = ["#5dbc5b", "#6c81b6", "#9eb5f0", "#a5cbd6", "#aee7f8", "#c2f263", "#d843b3", "#d8e929", "#e58652", "#e7ab6d", "#ee335f", "#fbe096", "#ffc535"];
31             var q = n.slice();
32             for (var p = 0, l = g; p < l; p++) {
33                 var k = Math.floor(Math.random() * q.length);
34                 o.push(q[k]);
35                 q.splice(k, 1);
36                 if (q.length == 0) {
37                     q = n.slice()
38                 }
39             }
40             return o
41         }
42         
43         
44     }
45 })(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:回调函数(色彩条显示完后)

 

转载于:https://www.cnblogs.com/mission/archive/2012/09/14/PercentBar.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode MySQL 1517. Find Users With Valid E-Mails(正则表达式)

文章目录1. 题目2. 解题1. 题目 Table: Users ------------------------ | Column Name | Type | ------------------------ | user_id | int | | name | varchar | | mail | varchar | ------------------------user_id is the primary ke…

数据分析-书籍整理(三)

《淘宝网店大数据营销》一套网店搭建的整体体系&#xff0c;从如何做好网店展开说&#xff0c;有很多实用方法&#xff0c;对运营有很大的帮助&#xff0c;方便数据分析人员理解业务 《京东平台数据化运营》讲解了一些京东的知识&#xff0c;很多更淘宝运营相似&#xff0c;只…

基于消息队列的日志组件

1 简介 1.1 类图 1.2 说明 日志支持的存储方式有&#xff1a;文本&#xff0c;xml,数据库三种。如果采用数据库方式&#xff0c;支持的数据库有sql server、oracle。日志采用读写分离的方式&#xff0c;客户端发送日志到消息队列&#xff0c;然后服务端程序读取消息队列&…

LeetCode MySQL 1495. Friendly Movies Streamed Last Month

文章目录1. 题目2. 解题1. 题目 Table: TVProgram ------------------------ | Column Name | Type | ------------------------ | program_date | date | | content_id | int | | channel | varchar | ------------------------ (program_date, conte…

AngularJs学习笔记--Modules

原版地址&#xff1a;http://code.angularjs.org/1.0.2/docs/guide/module 一、什么是Module&#xff1f; 很多应用都有一个用于初始化、加载&#xff08;wires是这个意思吗&#xff1f;&#xff09;和启动应用的main方法。angular应用不需要main方法&#xff0c;作为替代&…

电商用户行为分析与挖掘(MYSQL数据分析+SPSS构建RFM模型)

前言 毫不夸张的说在中国除了婴幼儿及七八十以上的老年人&#xff0c;都有过网购经历。电商公司就如雨后春笋般迅速发展。了解用户的网购行为&#xff0c;有助于商家定品类&#xff0c;定营销方案等。利用数据分析与挖掘&#xff0c;争取做到比顾客自己还了解TA自己。 文章目录…

LeetCode MySQL 1113. 报告的记录

文章目录1. 题目2. 解题1. 题目 动作表&#xff1a;Actions ------------------------ | Column Name | Type | ------------------------ | user_id | int | | post_id | int | | action_date | date | | action | enum | | extra…

展开BOM

Select LEVEL, ixkit, ixkitl, ixmmcu, ixitm, ixlitm, ixcmcu From jdedata900.f3002 START WITH ixkit 60661CONNECT BY PRIOR ixitm ixkit; 转载于:https://www.cnblogs.com/AlterMe/archive/2012/09/24/2699424.html

淘宝用户行为分析

前言 现在越来越多的线下转型到了线上经营&#xff0c;线下体验店线上购物将成为日后消费的大趋势。分析用户行为&#xff0c;走好转型之路&#xff0c;掌握先机快人一步。 文章目录前言一、背景Ⅰ 数据来源Ⅱ 数据背景Ⅲ 分析目的二、探索性分析Ⅰ 导入数据Ⅱ 数据处理1、缺失…

LeetCode 第 198 场周赛(434/5778,前7.51%)

文章目录1. 比赛结果2. 题目1. LeetCode 5464. 换酒问题 easy2. LeetCode 5465. 子树中标签相同的节点数 medium3. LeetCode 5466. 最多的不重叠子字符串 medium4. LeetCode 5467. 找到最接近目标值的函数值 hard1. 比赛结果 第二题图的边给的不一定按顺序的&#xff0c;我按有…

unzipped list

今天实现了一个unzipped操作&#xff0c;比如 (list (list 1 2) (list 3 4) (list 5 6)) -> (list (list 1 3 5) (list 2 4 6)) 这个实现起来没有什么难度&#xff0c;但是scheme中的表操作折腾了好久才没错。 (define (unzipped l) (if (null? l) (list () ()) (li…

关于数据运营的一点小思考

随着互联网行业的快速发展&#xff0c;其所带来的行业红利和流量红利基本上告别野蛮生长阶段&#xff0c;现代人越来越依赖互联网&#xff0c;看似市场大&#xff0c;但用户选择多&#xff0c;互联网产品淘汰得比刚开始更快。野蛮生长虽然发展快&#xff0c;但是伴随的弊端也随…

BZOJ 2197 [Usaco2011 Mar]Tree Decoration

BZOJ_2197 如果子树中有某个节点不符合要求&#xff0c;即便根再怎么符合要求都是没有任何意义的&#xff0c;因此要优先安排好子树中节点使其符合要求&#xff0c;再考虑根节点。对于任何一棵子树来讲&#xff0c;如果所有孩子选择的点的总和仍然不足根的C值的话&#xff0c;那…

清华镜像源安装 NGboost XGboost Catboost

清华镜像源安装 NGboost XGboost Catboost pip install catboost -i https://pypi.tuna.tsinghua.edu.cn/simple pip install ngboost -i https://pypi.tuna.tsinghua.edu.cn/simple pip install xgboost -i https://pypi.tuna.tsinghua.edu.cn/simple 数据比赛常用预测模型…

LeetCode MySQL 619. 只出现一次的最大数字

文章目录1. 题目2. 解题1. 题目 表 my_numbers 的 num 字段包含很多数字&#xff0c;其中包括很多重复的数字。 你能写一个 SQL 查询语句&#xff0c;找到只出现过一次的数字中&#xff0c;最大的一个数字吗&#xff1f; --- |num| --- | 8 | | 8 | | 3 | | 3 | | 1 | | 4 |…

幸福感数据分析与预测

文章目录分析目的一、数据采集1、 数据来源2、 数据说明二、数据传输三、数据处理1、查看数据2、缺失值处理3、合并数据集4、时间数据处理5、分组及One-hot编码处理四、数据分析1、描述性统计2、探索性分析1 是否与所在地是城市or农村有关2 是否与性别有关3 是否与年龄有关4 是…

LeetCode MySQL 1142. 过去30天的用户活动 II

文章目录1. 题目2. 解题1. 题目 Table: Activity ------------------------ | Column Name | Type | ------------------------ | user_id | int | | session_id | int | | activity_date | date | | activity_type | enum | ------------------…

mysql replace into用法详细说明

REPLACE的运行与INSERT很相似。只有一点例外&#xff0c;假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值&#xff0c;则在新记录被插入之前&#xff0c;旧记录被删除。 注意&#xff0c;除非表有一个PRIMARY KEY或UNIQUE索引&#xff0c;否则…

MYSQL练习题

MYSQL练习题 数据表建立代码及题目解答 提取码&#xff1a;e6lk

LeetCode MySQL 1280. 学生们参加各科测试的次数

文章目录1. 题目2. 解题1. 题目 学生表: Students ------------------------ | Column Name | Type | ------------------------ | student_id | int | | student_name | varchar | ------------------------主键为 student_id&#xff08;学生ID&#xff09;&a…