Vue3 +Echarts5 可视化大屏——屏幕适配

这篇具有很好参考价值的文章主要介绍了Vue3 +Echarts5 可视化大屏——屏幕适配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目基于Vue3 + Echarts5 开发,屏幕适配是使用 scale 方案
Echarts组件按需引入,减少打包体积
地图组件封装(全国&省份地图按需加载)

效果图:

Vue3 +Echarts5 可视化大屏——屏幕适配,Vue.js,Echarts,vue.js,echarts,前端

屏幕适配

大屏适配常用的方案有 rem + vw/vhscale

  • rem + vw/vh 方案

结合使用rem(相对于根元素字体大小的单位)和vw/vh(视窗宽度/高度的单位)来实现大屏的适配。它的优点是灵活性高、兼容性好、适应性强,但需要进行计算,可能存在误差问题,且代码复杂度较高。

  • scale 方案

通过改变页面根元素的缩放比例来实现大屏适配。它的优点是实现简单,不需要进行计算,且适用范围广,但可能会存在像素失真问题。

此项目使用 scale 缩放这种方式来实现。

利用 CSStransform:scale 属性对页面布局进行自适应缩放,CSS 元素设置完全按照设计稿大小设置 px,不需要转换长度单位。此项目设计稿给的尺寸是 1920*1080。具体方法如下:

  1. 首先根据浏览器大小推断缩放比例

思路:

  • 首先要确定设计稿尺寸,默认是 1920 x 1080
  • 分别计算浏览器和设计图宽高比
  • 如果浏览器的宽高比大于设计稿的宽高比,就取浏览器高度和设计稿高度之比;如果浏览器的宽高比小于设计稿的宽高比,就取浏览器宽度和设计稿宽度之比
// 根据浏览器大小推断缩放比例
// 首先要确定设计稿尺寸,默认是 1920 x 1080
// 分别计算浏览器和设计图宽高比
// 如果浏览器的宽高比大于设计稿的宽高比,就取浏览器高度和设计稿高度之比
// 如果浏览器的宽高比小于设计稿的宽高比,就取浏览器宽度和设计稿宽度之比
const getScale = (width = 1920, height = 1080) => {
  let ww = window.innerWidth / width
  let wh = window.innerHeight / height
  return ww < wh ? ww : wh
}
  1. 初始化的时候直接设置数据大屏的缩放比例,dataScreenRef 为整个大盒子 DOM
onMounted(() => {
  // 初始化时为外层盒子加上缩放属性,防止刷新界面时就已经缩放
  if (dataScreenRef.value) {
    dataScreenRef.value.style.transform = `scale(${getScale()}) translate(-50%, -50%)`
    dataScreenRef.value.style.width = `1920px`
    dataScreenRef.value.style.height = `1080px`
  }
  /**  其他代码 */
  // 为浏览器绑定事件
  window.addEventListener("resize", resize);
})
  1. 监听浏览器的窗口大小变化, 将新的比例赋给 scale 变量
// 监听浏览器 resize 事件
const resize = () => {
  if (dataScreenRef.value) {
    dataScreenRef.value.style.transform = `scale(${getScale()}) translate(-50%, -50%)`
  }
  /**  其他代码 */
}

地图数据下载

数据来源 https://datav.aliyun.com/portal/school/atlas/area_selector,获取各区域的 json 数据。文章来源地址https://www.toymoban.com/news/detail-552053.html

图表资源推荐

  • isqqw: https://www.isqqw.com/
  • MCChart: http://echarts.zhangmuchen.top/#/index

到了这里,关于Vue3 +Echarts5 可视化大屏——屏幕适配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vite+vue3+cesium大屏数据可视化项目——第一章:搭建项目

    目录 系列文章目录 前言 一、搭建项目 1.检查node版本号 2.搭建vue3项目 二、配置cesium 1.前期准备 2.安装cesium 3.引入cesium 4.初始化页面 总结   这几年智慧城市、数字孪生、数字可视化这些高级词汇可太多啦,招聘简介上也有很多要求会webGis等相关经验,所以我觉得最近来学一

    2024年02月07日
    浏览(43)
  • Echarts实现可视化大屏

    手把手带你做出一个可视化大屏,轻松完成期末大作业。 关注公众号” Python爬虫与数据分析 “回复“ 可视化大屏 ”获取代码及数据 涉及到的技术:Echarts、HTML、css、JavaScript Echarts官网: https://echarts.apache.org/handbook/zh/concepts/axis/ 目录 1、echarts同时展示多幅图 2、使用css优化

    2024年02月09日
    浏览(85)
  • springboot+echarts+mysql制作数据可视化大屏(滑动大屏)

     作者水平低,如有错误,恳请指正!谢谢!!!!! 项目简单,适合大学生参考 分类专栏还有其它的可视化博客哦! 专栏地址:https://blog.csdn.net/qq_55906442/category_11906804.html?spm=1001.2014.3001.5482 目录  一、数据源 二、所需工具 三、项目框架搭建 四、代码编写 温度堆叠折线图

    2024年02月11日
    浏览(32)
  • Flask+Echarts搭建全国疫情可视化大屏

    本项目是基于flask+echarts搭建的全国疫情追踪的可视化大屏,主要涉及到的技术有csv处理,flask框架,echarts图表。 最终效果如下: 我们先搭建一个基础的flask应用 接着,需要编写index.html页面和css样式代码(这里我就直接放最终的代码) 我们需要编写获取数据的接口,然后通过

    2024年02月16日
    浏览(33)
  • 数据可视化大屏——基于echarts的开发经验分享

    各位同事大家好!下面是我使用echarts中总结的一些个人经验,仅供参考。 echarts的能力、优劣等特点大家应该在技术选型阶段已经有所了解,这里主要分享使用、设计等经验。 echarts由无到有一共只需要四步: 引入echarts资源 :支持模块化项目使用npm下载引入,老项目使用s

    2024年02月01日
    浏览(49)
  • Flask配合Echarts写一个动态可视化大屏

    ch 后端:flask 可视化:echarts 前端:HTML+JavaScript+css 大屏拆分 案例项目中大屏可按版块进行拆解,会发现这里大屏主要由标题、折线图、柱状图、地图、滚动图和词云等组成,整体可切分为8个版块,如下: 下方为简单演示: HTML 我们整体布局前,先通过简单的案例了解前端布

    2024年02月07日
    浏览(36)
  • 基于Echarts构建大数据招聘岗位数据可视化大屏

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.项目背景 2.项目简介 3.项目流程 3.1整体布局 3.2左边布局 3.3中间布局  3.4右边布局  

    2024年02月03日
    浏览(39)
  • springboot+echarts +mysql制作数据可视化大屏(四图)

    作者水平低,如有错误,恳请指正!谢谢!!!!! 项目简单,适合大学生参考 分类专栏还有其它的可视化博客哦! 专栏地址:https://blog.csdn.net/qq_55906442/category_11906804.html?spm=1001.2014.3001.5482 成果展示: 1)可以使用自己的MySQL数据库; 2)使用我提供的数据。(要数据私信

    2024年02月13日
    浏览(32)
  • 基于Django+Mysql+Echarts的可视化大屏开发

    课程实验作业,临时赶出来的一个可视化大屏,后端是Django实现的web框架+Mysql数据库;前端(HTML+CSS+JS)三剑客,图表控件Echarts;本人很菜,,,做的比较潦草,还请多多包涵! github项目地址:https://github.com/goldikfish/Bigscreen.git 运行效果如图 数据源自国家数据统计局 ,将数

    2024年02月11日
    浏览(31)
  • vue3+echarts应用——深度遍历html的dom结构并用树图进行可视化

    大家好,我是yma16,本文分享关于 vue3+echarts应用——深度遍历 html 的 dom结构并使用树图进行可视化。 💖vue3系列文章 vue3 + fastapi 实现选择目录所有文件自定义上传到服务器 前端vue2、vue3去掉url路由“ # ”号——nginx配置 csdn新星计划vue3+ts+antd赛道——利用inscode搭建vue3(ts)+an

    2024年01月20日
    浏览(55)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包