*{ padding: 0; margin: 0; } .tubiao,.jihua,.shiji,.riqi{ width: 100%; overflow: hidden; margin-top: 10px; } .left{ width: 10%; float: left; text-align: cen" />
当前位置:首页 > 日记 > 正文

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

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

利用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>

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

相关文章

中的文字如何用ps输入

中的文字如何用ps输入

输入,文字,方法,如何用,图片,  图片中的文字可以直接在ps中输入,文字工具非常重要,大家要战掌握。那么大家知道图片中的文字如何用ps输入吗?下面是小编整理的图片中的文字如何用ps输入的方法,希望能帮到大家!图片中的文字用ps输入的方法如果…

Excel中进行利用公式生成序号的操

Excel中进行利用公式生成序号的操

操作技巧,公式,序号,操作步骤,电脑软件,  在使用excel制作表格的时候,序列号是很常用的一个工能,那么有什么方法生成序列号呢?今天,小编就教大家在Excel中进行利用公式生成序号的操作技巧。Excel中进行利用公式生成序号的操作步骤打开excel,…

Excel表格中定时启动宏的操作步骤

Excel表格中定时启动宏的操作步骤

启动,表格,操作步骤,电脑软件,Excel,  所谓的定时启动宏,指的是让宏在规定的时间或以设定的时间间隔自动启动,该功能是通过使用Application.OnTime方法来实现的。以下是小编为您带来的关于Excel表格中定时启动宏的操作步骤,希望对您有所帮助…

qq情侣霸气的个性签名

qq情侣霸气的个性签名

霸气,个性签名,情侣,大全,电脑软件,  一句霸气的个性签名:我要让爱我的人自豪,弃我的人后悔,厌我的人不尽如意,嘲笑我的人木瞪口呆。下面小编给大家分享了关于qq情侣霸气的个性签名,希望你喜欢。qq情侣霸气的个性签名精选1) 我不淑女,也总比你…

excel2007怎么设置高亮重复项

excel2007怎么设置高亮重复项

设置,方法,电脑软件,高亮,  在Excel中录入好数据以后经常需要用到查询重复项功能把重复项给高亮显示出来,具体如何设置重复项呢?下面给大家分享excel2007设置高亮重复项的方法,希望能帮到大家。excel2007设置高亮重复项的方法设置高亮重复…

商务演示PPT精彩的要素有哪些

商务演示PPT精彩的要素有哪些

要素,演示,精彩,有哪些,电脑软件,  &ldquo;清华寝室夜话&rdquo;里面的大学生有这样一句台词&ldquo;最挣钱的语言是PPT!&rdquo;虽说是个笑话,但在当前社会,PPT确实频频出现在各种商业场合。以下是小编为您带来的关于商务演示PPT精彩的四个要…

关于Node.js的events.EventEmitter

关于Node.js的events.EventEmitter

电脑软件,js,Node,EventEmitter,events,Node.js 所有的异步 I/O 操作在完成时都会发送一个事件到事件队列。Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件, 一个fs.readStream对象会在文件被打开的时…

excel2007没有日历控件的调出方法e

excel2007没有日历控件的调出方法e

日历控件,方法,设置,日历,电脑软件,  有时我们在运用Excel表格的时候会运用到日历的控件,可是小伙伴们却不知道在哪里添加。那么我们来看一下,它到底躲藏在哪里,又该怎么添加呢?今天,小编就教大家如何调出日历控件的方法!Excel2007调出日历控…

excel2007工作表标签设置显示的方

excel2007工作表标签设置显示的方

显示,标签,方法,设置,工作,  Excel中的过坐标标签被隐藏了具体该如何设置显示呢?接下来是小编为大家带来的excel2007工作表标签设置显示的方法,供大家参考。excel2007工作表标签设置显示的方法显示工作表标签步骤1:点击office功能按钮,选择…

怎么在ppt2010中设置页码在ppt2010

怎么在ppt2010中设置页码在ppt2010

设置,方法,步骤,页码,电脑软件,  使用Microsoft PowerPoint,可以创建动态演示文稿并与观众共享。下面小编教你ppt页码怎么设置。希望对你有帮助!ppt2010页码设置步骤 单击下图红框中的&ldquo;插入&rdquo;面板按钮。ppt2010页码设置步骤 图1…

JS简单验证上传文件类型的方法

JS简单验证上传文件类型的方法

文件类型,验证,上传,方法,简单,本文实例讲述了JS简单验证上传文件类型的方法。分享给大家供大家参考,具体如下:function checkType(){ //得到上传文件的值 var fileName=document.getElementById("file_logo").value; //返回String对象中子…

详解JS数组Reduce | 方法详解及高

详解JS数组Reduce | 方法详解及高

方法,高级技巧,数组,详解,电脑软件,基本概念reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。reduce 为数组中的每一个元素依次执行回调函数,不包括数组中被删除或从未被赋值的元素,接受四个参…