Echarts5.3.2可视化案例-布局篇(上)

简介: Echarts5.3.2可视化案例-布局篇00参考以及效果01背景知识大屏flex布局

00参考以及效果

参考:https://www.bilibili.com/video/BV1v7411R7mp

最终效果:



01背景知识

大屏

分辨率:

分辨率…到底是啥?1080p,2k,4k?分辨率越高就越清晰吗?

https://zhuanlan.zhihu.com/p/109817032

大屏设计尺寸规范指南

https://www.shejidaren.com/da-ping-sheji-chicun-guifan-zhinan.html

查看自己电脑的显示器:

个性化-显示设置-分辨率

19寸显示器:1440x900(16:10)

其它常见的尺寸的屏幕对应的最佳分辨率如下:

19寸显示器:1440x900(16:10)

20寸显示器:1600x900(16:9)1600x1200(4:3)

21.5寸显示器:1920x1080(16:9)

22寸显示器:1680x1050(16:10)1920x1080(16:9)1920x1200(16:10)

23寸显示器:1920x1080(16:9)1920x1200(16:10)

23.6寸显示器:1920x1080(16:9)

24寸显示器:1920x1200(16:10)1920x1080(16:9)

25寸显示器:1920x1080(16:9)

26寸显示器:1920x1200(16:10)

27寸显示器:2560x1440(16:9)

30寸显示器:2560x1600(16:10)

flex布局

参考:https://blog.csdn.net/wuyxinu/article/details/107708194



二个成员:

采用Flex布局的元素为Flex容器(flex container),它的所有子元素自动成为容器成员,称为Flex项目(flex item)。


两根轴:


水平主轴 main axis

主轴与边框的左右交叉点 main start/main end

垂直交叉轴 cross axis

交叉轴与边框的上下交叉点 cross start/cross end


项目(flex item)默认沿主轴排列,单项目占据的主轴空间/交叉轴空间 main size/cross size

flex容器属性

flex-direction 决定主轴方向=项目排列方向
flex-wrap 定义如何换行
flex-flow 它是flex-direction和flex-wrap的简写形式,语法糖
justify-content 定义项目在主轴上的对齐方式
align-items 定义项目在交叉轴上的对齐方式
align-content 定义多根轴线的对齐方式。若项目只有一根轴线则不生效。

02 大屏设计

00 项目目录

01-使用技术

完成该项目需要具备以下知识:

  • div + css 布局
  • flex 布局
  • Less
  • 原生js + jquery 使用
  • rem适配
  • echarts基础

02- 案例适配方案

  • 设计稿是1920px
  1. flexible.js 把屏幕分为 24 等份
  2. cssrem 插件的基准值是 80px
    插件-配置按钮—配置扩展设置–Root Font Size 里面 设置。
    但是别忘记重启vscode软件保证生效

flexible配置

1.引入flexible

<script src="js/flexible.js"></script>

2.修改flexible配置 为24

// set 1rem = viewWidth / 10
  function setRemUnit() {
    var rem = docEl.clientWidth / 24;
    docEl.style.fontSize = rem + "px";
  }

3.前端查看是否引入成功


cssrem配置

1.安装cssrem插件拓展

extensions搜索cssrem

2.修改cssrem拓展的默认配置



03-基础设置

  • css初始化
  • body 设置背景图 ,缩放为 100% , 行高1.15

CSS初始化

  1. 引入easyless插件
  2. 在css目录下创建index.less

在css目录下创建index.less

执行ctrl+s 保存

会自动编译成index.css文件

  1. 在index.less进行css初始化
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

content-box 与 border-box


  1. 在index.html中引入css
 <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="js/flexible.js"></script>
    <link rel="stylesheet" href="css/index.css">
    <title>Document</title>
</head>
<body>
    <div class="box">123</div>
</body>
  1. 查看引入之后的效果,



body背景图

body 设置背景图 ,缩放为 100% , 行高1.15

body {
    background: url(../images/bg.jpg)
    no-repeat top center;
    line-height: 1.15;
}

04-header 布局

  • 高度为100px
  • 背景图,在容器内显示
  • 缩放比例为 100%
  • h1 标题部分 白色 38像素 居中显示 行高为 80像素
  • 时间模块 showTime 定位右侧 right 为 30px 行高为 75px 文字颜色为:rgba(255, 255, 255, 0.7) 而文字大小为 20像素

html布局

<header>
        <h1>Echarts - dashboard</h1>
        <div class="showTime"></div>
        <script>
            var t = null;
            t = setTimeout(time, 1000);//開始运行
            function time() {
                clearTimeout(t);//清除定时器
                dt = new Date();
                var y = dt.getFullYear();
                var mt = dt.getMonth() + 1;
                var day = dt.getDate();
                var h = dt.getHours();//获取时
                var m = dt.getMinutes();//获取分
                var s = dt.getSeconds();//获取秒
                document.querySelector(".showTime").innerHTML = '当前时间:' + y + "年" + mt + "月" + day + "-" + h + "时" + m + "分" + s + "秒";
                t = setTimeout(time, 1000); //设定定时器,循环运行     
            }
        </script>
    </header>

CSS布局

header{
    position: relative;
    height: 1.25rem;
    background: url(../images/head_bg.png) no-repeat top center;
    background-size: 100% 100%;
    h1 {
        font-size: .475rem;
        text-align: center;
        color: #fff;
        line-height: 1rem;
    }
    .showTime{
        position: absolute;
        right:.375rem;
        top: 0;
        line-height: .9375rem;
        font-size: .25rem;
        color:rgba(255, 255, 255, 0.7)
    }
}

05-mainbox 主体模块

  • 需要一个上左右的10px 的内边距
  • column 列容器,分三列,占比 3:5:3

html布局

    <section class="mainbox">
        <div class="column">1</div>
        <div class="column">2</div>
        <div class="column">3</div>
    </section>

css样式:

.mainbox{
    min-width: 1024px;
    max-width: 1920px;
    padding: .125rem .125rem 0;
    display: flex;
    background-color: red;
    .column {
        flex: 3;
        &:nth-child(2){
            flex:5;
            margin: 0 .125rem .1875rem;
            overflow: hidden;
        }
    }
}

效果如下:



06-公共面板模块 panel + bar

高度为 310px


1像素的 1px solid rgba(25, 186, 139, 0.17) 边框


有line.jpg 背景图片


padding为 上为 0 左右 15px 下为 40px


下外边距是 15px


利用panel 盒子 before 和after 制作上面两个角 大小为 10px 线条为 2px solid #02a6b5


新加一个盒子before 和after 制作下侧两个角 宽度高度为 10px


标题模块 h2 高度为 48px 文字颜色为白色 文字大小为 20px


图标内容模块 chart 高度 240px


以上可以作为panel公共样式部分

Html布局

    <section class="mainbox">
        <div class="column">
            <div class="panel bar">
                <h2>bar chart</h2>
                <div class="chart"> bar Echarts </div>
                <div class="panel-footer"></div>
            </div>
        </div>
        <div class="column">2</div>
        <div class="column">3</div>
    </section>


相关文章
|
3月前
|
数据可视化 前端开发 JavaScript
Echarts英雄联盟可视化大屏(记得收藏)
Echarts英雄联盟可视化大屏(记得收藏)
|
3月前
|
数据可视化 前端开发 JavaScript
Echarts+JS实现农业指挥舱可视化大屏!!附源码!!
Echarts+JS实现农业指挥舱可视化大屏!!附源码!!
|
3月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】智慧医疗可视化大屏(新手必用)
【Echarts大屏】智慧医疗可视化大屏(新手必用)
|
3月前
|
数据可视化 前端开发 JavaScript
Echarts+JS实现数据分析可视化大屏!!附源码!!
Echarts+JS实现数据分析可视化大屏!!附源码!!
|
3月前
|
数据可视化
【Echarts大屏】智慧门店可视化大屏
【Echarts大屏】智慧门店可视化大屏
|
3月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】茶山指挥舱可视化大屏(记得收藏)
【Echarts大屏】茶山指挥舱可视化大屏(记得收藏)
|
3月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】大客户银行可视化大屏(附源码一键复制)
【Echarts大屏】大客户银行可视化大屏(附源码一键复制)
|
3月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
【Echarts大屏】智慧图书馆可视化大屏(附源码一键复制)
|
3月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】共享单车运营平台|可视化大屏
【Echarts大屏】共享单车运营平台|可视化大屏
|
3月前
|
数据可视化 前端开发 JavaScript
【Echarts大屏】数字化茶叶可视化大屏(附源码一键复制)
【Echarts大屏】数字化茶叶可视化大屏(附源码一键复制)

热门文章

最新文章