javascript实现动态显示颜色块的报表效果


Posted in Javascript onApril 10, 2017

利用html的颜色块动态展示数据

<style type="text/css">
 *{
 padding: 0;
 margin: 0;
 }
 .tubiao,.jihua,.shiji,.riqi{
 width: 100%;
 overflow: hidden;
 margin-top: 10px;
 }
 .left{
 width: 10%;
 float: left;
 text-align: center;
 height: 25px;
 line-height: 25px;
 }
 .right{
 width: 90%;
 float: right;
 height: 25px;
 }
 span {
 width: 5%;
 height: 100%;
 text-align: center;
 display: inline-block;
 }
 </style>
<body>
 <div class="tubiao">
 <div class="jihua">
 <div class="left">计划</div>
 <!--计划span存放的地方-->
 <div class="right plan"></div>
 </div>
 <div class="shiji">
 <div class="left">实际</div>
 <!--实际span存放的地方-->
 <div class="right act"></div>
 </div>
 <div class="riqi" id="day_id">
 <!--日期存放的地方-->
 <div class="right day"></div>
 </div>
 </div>
 <script type="text/javascript">
 var temp1="0-0.5-2-2-2-2-1-1";//计划耗时(块的单位宽度)
 var temp2="1-1-2-1-2-0-0-0";//实际耗时(块的单位宽度) 
 var temp3="5/19-5/20-5/21-5/22-5/23-5/24-5/25-5/26-5/27-5/28";//综合日期
 var temp=temp1+"~"+temp2+"~"+temp3; 
 var plan = document.getElementsByClassName("plan")[0];
 var act = document.getElementsByClassName("act")[0];
 var day = document.getElementsByClassName("day")[0];
 var num = 20;//创建多少个格
 load_first(temp);
 //分割数据和添加色块操作
 function load_first(temp){
 var demo=temp.split("~");
 var d1=demo[0].split("-");//计划耗时(块的单位宽度)数组
 var d2=demo[1].split("-");////实际耗时(块的单位宽度)数组
 var d3=demo[2].split("-");//综合日期数组
 for(var i=0;i<d3.length;i++){
 time_span(d3[i]);
 }
 //alert("6:"+d1.length+"---"+"3:"+d2.length);
 //alert("d3.length:"+d3.length);
 for(var i=0;i<d1.length;i++){ 
 add_span(d1[i],d2[i],i);
 }
 document.getElementById("day_id").style.marginLeft="-30px"; 
 } 
 //新增颜色块,a为计划颜色块宽度,b为实际颜色块宽度
 function add_span(a,b,i){
 //创建span块
 var span1 = document.createElement("span");
 var span2 = document.createElement("span");
 //定义随机底色
 var spa = "rgba(" + rnd(0,255)+ "," + rnd(0,255)+ ","+ rnd(0,255)+ ","+ rnd(0.5,1) +")";//每一个颜色随机出来
 if(i==0){
 span1.style.backgroundColor = "000000";
 //clientWidth是对象看到的宽度(不含边线,即border)
 span1.style.width = (plan.clientWidth/num*a) + "px";//计划的每一格的宽度
 //插入节点span1至plan
 plan.appendChild(span1);
 span2.style.backgroundColor = "000000";
 span2.style.width = (plan.clientWidth/num*b) + "px";//实际的每一格的宽度
 act.appendChild(span2);
 }else{
 //alert("a:"+a+"b:"+b+"i:"+i);
 if(a=="0"){
 span1.style.backgroundColor = "000000"; 
 span1.style.width = (plan.clientWidth/num*a) + "px";//计划的每一格的宽度
 //插入节点span1至plan
 plan.appendChild(span1);
 }else{
 span1.style.backgroundColor = spa;
 //clientWidth是对象看到的宽度(不含边线,即border)
 span1.style.width = (plan.clientWidth/num*a) + "px";//计划的每一格的宽度
 //插入节点span1至plan
 plan.appendChild(span1);
 }
 if(b=="0"){
 span2.style.backgroundColor = "000000";
 span2.style.width = (plan.clientWidth/num*b) + "px";//实际的每一格的宽度
 act.appendChild(span2); 
 }else{
 span2.style.backgroundColor = spa;
 span2.style.width = (plan.clientWidth/num*b) + "px";//实际的每一格的宽度
 act.appendChild(span2);
 } 
 }
 } 
 //日期的数据插入
 function time_span(time){
 //创建span块
 var span = document.createElement("span"); 
 span.style.width = (plan.clientWidth/num*1) + "px";//每一个span的宽度 
 span.innerHTML = "" + time;
 day.appendChild(span);
 }
 //随机函数
 function rnd(min,max){
 return Math.round(Math.random()*(max - min)+min); 
 }
 function QueryData() {
 var displayStyle = "1";
 $.ajax({
 type: "post",
 url: "Test.aspx",
 dataType: "text",
 data: { "DispalyStyle": displayStyle },
 error: function (XMLHttpRequest, textStatus, errorThrown) {
 alert(errorThrown + XMLHttpRequest.responseText);
 },
 success: function (json) {
 try {
 load_first(json);
 }
 catch (e) { }
 }
 });
 }
 //QueryData();
 </script>
 </body>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript的对话框详解与参数
Mar 08 Javascript
jquery+php实现搜索框自动提示
Nov 28 Javascript
javascript实现左右控制无缝滚动
Dec 31 Javascript
js精美的幻灯片画集特效代码分享
Aug 29 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
ionic js 模型 $ionicModal 可以遮住用户主界面的内容框
Jun 06 Javascript
数据结构中的各种排序方法小结(JS实现)
Jul 23 Javascript
利用Javascript实现BMI计算器
Aug 16 Javascript
深入剖析Express cookie-parser中间件实现示例
Feb 01 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
Sep 21 Javascript
对vue中的事件穿透与禁止穿透实例详解
Oct 28 Javascript
Vite + React从零开始搭建一个开源组件库
Jun 25 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
Apr 10 #Javascript
ES6生成器用法实例分析
Apr 10 #Javascript
基于javascript的异步编程实例详解
Apr 10 #Javascript
浅谈js-FCC算法Friendly Date Ranges(详解)
Apr 10 #Javascript
javascript实现table单元格点击展开隐藏效果(实例代码)
Apr 10 #Javascript
js实现适配不同的屏幕大小
Apr 10 #Javascript
JS闭包可被利用的常见场景小结
Apr 09 #Javascript
You might like
PHP IE中下载附件问题解决方法
2014/01/07 PHP
destoon实现调用图文新闻的方法
2014/08/21 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
判断文档离浏览器顶部的距离的方法
2014/01/08 Javascript
用C/C++来实现 Node.js 的模块(一)
2014/09/24 Javascript
jquery中append()与appendto()用法分析
2014/11/14 Javascript
DOM基础教程之使用DOM控制表单
2015/01/20 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
js插件dropload上拉下滑加载数据实例解析
2016/07/27 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
Angular使用Md5加密的解决方法
2017/09/16 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
vue项目引入ts步骤(小结)
2019/10/31 Javascript
selenium+java中用js来完成日期的修改
2019/10/31 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
javascript实现的图片预览和上传功能示例【兼容IE 9】
2020/05/01 Javascript
JavaScript实时更新当前的时间的示例代码
2020/07/15 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
python中使用enumerate函数遍历元素实例
2014/06/16 Python
编写Python脚本来获取mp3文件tag信息的教程
2015/05/04 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
攻击者是如何将PHP Phar包伪装成图像以绕过文件类型检测的(推荐)
2018/10/11 Python
Python Dataframe常见索引方式详解
2020/05/27 Python
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
应届护士推荐信
2013/11/16 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
部门2015年度工作总结
2015/04/29 职场文书
《神奇的鸟岛》教学反思
2016/02/22 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers
win11电脑关机鼠标灯还亮怎么解决? win11关机后鼠标灯还亮解决方法
2023/01/09 数码科技