IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Echarts大屏展示,实现响应式比较常用的方式 -> 正文阅读

[JavaScript知识库]Echarts大屏展示,实现响应式比较常用的方式

以前写过一些大屏可视化的实现方式,发现有点落后了,更新下。

能学到的知识

  • 1、PC数据可视化项目,实现响应式一篇搞定
  • 2、配合 蓝湖 使用,主要是取元素的样式、色值,完美还原
  • 3、基于vue2vue cli4echarts 5

效果图

浏览器默认状态

在这里插入图片描述

1920x1080

在这里插入图片描述

1440x900

在这里插入图片描述

1366x768

在这里插入图片描述

1024x768

在这里插入图片描述

实现

主要思路就是,根据设计图的尺寸,用csstransform: scale缩放页面。

实现缩放主要代码

changeScale() {
  const body = document.documentElement
  const scale1 = body.clientWidth / this.width
  const scale2 = body.clientHeight / this.height
  const scale = scale1 < scale2 ? scale1 : scale2
  this.styleObj.transform = `scale(${scale}) translate(-50%, -50%)`
}

translate,是为了让页面的缩放保持宽高比,要配合对应容器的css实现,例如本项目的:

.bigscreen {
    width: 1920px;
    height: 1080px;
    overflow: hidden;
    position: fixed;
    top: 50%;
    left: 50%;
    transform-origin: left top;
}

上面的实现,其实不用translate也行的,但是页面的高度在某些屏幕下会被压扁,因为屏幕尺寸和设计图的宽高比不一致,有兴趣的自己尝试了

关于绑定数据

为了可读性,一般都把页面按模块分割成组件引入使用的。数据的绑定,一般2种情况:

1、大屏的数据一个接口全部返回

这种情况,给每个需要数据的组件设置props属性,然后在主页面请求数据,传参就行,具体看代码了,不复杂。

2、每个图表模块都单独一个接口返回数据

这种情况就在对应组件请求数据,绑定数据就行了

代码总览

涉及的文件如下(具体参考代码):

|-- src
    |-- views
        |-- bigscreen    // 实例所在
            |-- index.vue
            |-- index.scss
            |-- index.js
            	|--components
            		|-- header.vue
            		|-- leftView
            			|-- index.vue
            			|-- index.scss
            			|-- index.js
            		|-- rightView
            			|-- index.vue
            			|-- index.scss
            			|-- index.js
            		|-- centerView
            			|-- index.vue
            			|-- index.scss
            			|-- index.js
            		|-- bottomView
            			|-- index.vue
            			|-- index.scss
            			|-- index.js
	|-- utils
		|---utils.js
	|-- styles
		|-- box.scss	// 大屏共用样式

代码

代码总览的目录去代码里找着看就行了。

总结

大屏的布局,各种各样,自己看情况修改了,这里只是做个例子。这里的方案,可以保证设定尺寸下的页面,以设定尺寸为基础缩放,达到响应式的效果。现在做的项目,大多数都是以1920x1080的设计图来做,和蓝湖配合,基本可以很简单的就达到设计图90%+的效果,剩下的10%,主要是因为地图无法百分百的随意还原,其它部分都是可以完美实现的。

拓展

数据可视化,图表的实现,用的是 Echarts,至今做了不少大屏项目,总结的一套用法,比较成熟和稳定了,Echarts的使用可参考以下

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:03:56  更:2022-05-24 18:05:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:46:50-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码