Html 实现动态显示颜色块的报表效果(实例代码)

所属分类: 网页制作 / HTML/Xhtml 阅读数: 1328
收藏 0 赞 0 分享

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

以上所述是小编给大家介绍的Html 实现动态显示颜色块的报表效果(实例代码),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

更多精彩内容其他人还在看

移动 web 端屏幕适配(rem)

这篇文章主要介绍了移动 web 端屏幕适配(rem)。详细的介绍了移动 web 端屏幕适配(rem),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解前端在html页面之间传递参数的方法

这篇文章主要介绍了详解前端在html页面之间传递参数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

html form表单input使用disabled后提交不能获取表单值的解决方法

这篇文章主要介绍了html form表单input使用disabled后提交不能获取表单值的解决方法,需要的朋友可以参考下
收藏 0 赞 0 分享

DIV的失去焦点(blur)实现方法

这篇文章主要介绍了DIV的失去焦点(blur)实现方法,用防抖实现DIV鼠标移出消失,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解HTML onfocus获得焦点和onblur失去焦点事件

这篇文章主要介绍了详解HTML onfocus获得焦点和onblur失去焦点事件的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

HTML中两个tabs导航冲突问题的解决方法

这篇文章主要介绍了HTML中两个tabs导航冲突问题的解决方法,需要的朋友参考下吧
收藏 0 赞 0 分享

详解html中 position属性用法(四种)

这篇文章主要介绍了html中 position用法,文中逐一给大家介绍了position的四个属性值,感兴趣的朋友跟随小编一起看看吧
收藏 0 赞 0 分享

详解左右宽度固定中间自适应html布局解决方案

这篇文章主要介绍了详解左右宽度固定中间自适应html布局解决方案的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

详解 html area标签

area 元素总是嵌套在 <map> 标签中。本文重点给大家介绍html area标签的相关知识,需要的朋友参考下吧
收藏 0 赞 0 分享

HTML高亮关键字的完美解决方案

最近项目做晕头,一个接一个,其中遇到这样的一个功能,在网页中高亮关键字的实现方法,下面小编把实现代码及解决方案分享给大家,感兴趣的的朋友跟随小编一起看看吧
收藏 0 赞 0 分享
查看更多