iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Echats图表大屏自适应的实现方法
  • 860
分享到

Echats图表大屏自适应的实现方法

2024-04-02 19:04:59 860人浏览 安东尼
摘要

目录描述实现项目目录结构如下效果图如下总结描述 使用图表结合数据可以很直观的视觉效应,大屏展示已经成为企业数据展示的常见场景,如何做到大屏自适应是我们需要解决的一个问题,下面是其中一

描述

使用图表结合数据可以很直观的视觉效应,大屏展示已经成为企业数据展示的常见场景,如何做到大屏自适应是我们需要解决的一个问题,下面是其中一种解决方案,利用CSS的transfORM属性以及设计百分比,如有不足,请批评

实现

1.准备一个容器组件,width = 100vw,height = 100%,作为大屏展示的背景:


 <div class="screen-adapter">
 </div>
 
 .screen-adapter {
  width: 100vw;
  min-height: 100%;
  max-height: 100vh;
  overflow: hidden;
  background: #0c1a3c;
}

2.根据设计同学提供的设计图可以计算出每部分区域的百分比,例如总尺寸是w*h,其中一个图标宽高是w1 * h1,实现常规切图,此时由1-->2可得:


<div class="screen-adapter">
    <div class="content-wrap" :style="style">
      <slot></slot>
    </div>
</div>
props: {
    w: { // 设计图尺寸宽
      type: Number,
      default: 1600
    },
    h: { // 设计图尺寸高
      type: Number,
      default: 900
    }
},
data () {
    return {
      style: {
        width: this.w + 'px',
        height: this.h + 'px',
        transform: 'scale(1) translate(-50%, -50%)' // 默认不缩放,垂直水平居中
      }
    }
}
  
.content-wrap {
  transform-origin: 0 0;
  position: absolute;
  top: 50%;
  left: 50%;
}

3.基于第二步,需要根据大屏具体尺寸计算缩放比例,以及设置缩放比例,需要注意的是,绑定resize事件一定别忘了防抖,页面销毁别忘了移除监听事件:


mounted () {
    this.setScale()
    this.onresize = this.debounce(() => this.setScale(), 100)
    window.addEventListener('resize', this.onresize)
},
beforeDestroy () {
    window.removeEventListener('resize', this.onresize)
},
 methods: {
    // 防抖
    debounce (fn, t) {
      const delay = t || 500
      let timer
      return function () {
        const args = arguments
        if (timer) {
          clearTimeout(timer)
        }
        const context = this
        timer = setTimeout(() => {
          timer = null
          fn.apply(context, args)
        }, delay)
      }
    },
    // 获取缩放比例
    getScale () {
      const w = window.innerWidth / this.w
      const h = window.innerHeight / this.h
      return w < h ? w : h
    },
    // 设置缩放比例
    setScale () {
      this.style.transform = `scale(${this.getScale()}) translate(-50%, -50%)`
    }
  }

4.至此,大概结构已经得到,只需要将各部分图标组件还原的设计图放入之前的 插槽即可,各部分图标组件的尺寸按照设计提供的百分比即可,所有代码大致如下:


// ScreenAdapter.Vue
<template>
  <div class="screen-adapter">
    <div class="content-wrap" :style="style">
      <slot></slot>
    </div>
  </div>
</template>
<script>
export default {
  props: {
    w: {
      type: Number,
      default: 1600
    },
    h: {
      type: Number,
      default: 900
    }
  },
  data () {
    return {
      style: {
        width: this.w + 'px',
        height: this.h + 'px',
        transform: 'scale(1) translate(-50%, -50%)'
      }
    }
  },
  mounted () {
    this.setScale()
    this.onresize = this.Debounce(() => this.setScale(), 100)
    window.addEventListener('resize', this.onresize)
  },
  beforeDestroy () {
    window.removeEventListener('resize', this.onresize)
  },
  methods: {
    Debounce (fn, t) {
      const delay = t || 500
      let timer
      return function () {
        const args = arguments
        if (timer) {
          clearTimeout(timer)
        }
        const context = this
        timer = setTimeout(() => {
          timer = null
          fn.apply(context, args)
        }, delay)
      }
    },
    getScale () {
      const w = window.innerWidth / this.w
      const h = window.innerHeight / this.h
      return w < h ? w : h
    },
    setScale () {
      this.style.transform = `scale(${this.getScale()}) translate(-50%, -50%)`
    }
  }
}
</script>
<style>
.screen-adapter {
  width: 100%;
  min-height: 100vh;
  max-height: 100vh;
  overflow: hidden;
  background: #0c1a3c;
}
.content-wrap {
  transform-origin: 0 0;
  position: absolute;
  top: 50%;
  left: 50%;
}
</style>

项目目录结构如下

效果图如下

可以看出,字体图表都是等比例缩放的

总结

到此这篇关于Echats图表大屏自适应实现的文章就介绍到这了,更多相关Echats图表大屏自适应内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Echats图表大屏自适应的实现方法

本文链接: https://www.lsjlt.com/news/155287.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Echats图表大屏自适应的实现方法
    目录描述实现项目目录结构如下效果图如下总结描述 使用图表结合数据可以很直观的视觉效应,大屏展示已经成为企业数据展示的常见场景,如何做到大屏自适应是我们需要解决的一个问题,下面是其中一...
    99+
    2024-04-02
  • vue大屏自适应的实现方法(cv就能用)
    目录前言大屏第一步:先下包,这里用到lib-flexible和postcss-pxtorem第二步:在main.js引入第三步:修改lib-flexible源文件配置第四步:在vue...
    99+
    2024-04-02
  • Vue实现大屏页面的屏幕自适应
    本文实例为大家分享了Vue实现大屏页面的屏幕自适应的具体代码,供大家参考,具体内容如下 1. 在配置文件设置大屏设计的尺寸1920*1080 //appConfig.js exp...
    99+
    2024-04-02
  • css实现html图片自适应手机屏幕大小
    本篇内容主要讲解“css实现html图片自适应手机屏幕大小”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“css实现html图片自适应手机屏幕大小”吧! ...
    99+
    2024-04-02
  • CSS如何实现屏幕大小自适应
    这篇“CSS如何实现屏幕大小自适应”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“CSS如何实现屏幕大小自适应”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入...
    99+
    2023-06-08
  • vue+px2rem实现pc端大屏自适应的实例代码(rem适配)
    配置前言 项目构建:基于vue-cli3构建,使用postcss-px2rem px2rem-loader进行rem适配 实现原理:每次打包,webpack通过使用插件postcss...
    99+
    2024-04-02
  • Vue实现Echarts图表宽高自适应的实践
    目录1. 安装并引入2. 定义防抖函数3.  绘制图表代码init 方法resize 方法官网解释1. 安装并引入 npm install echarts --sav...
    99+
    2024-04-02
  • CSS字体大小怎么实现自适应屏幕
    可以通过使用相对单位来实现CSS字体大小的自适应屏幕。相对单位相对于父元素的大小或视口的大小进行计算,可以根据屏幕的大小动态调整字体...
    99+
    2023-10-11
    CSS
  • vbs如何实现图片自适应表格
    这篇文章给大家分享的是有关vbs如何实现图片自适应表格的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 1.上传的时候可以将图片高宽存到数据库里,用的时候调出来判断,但那种方法相比较下边的麻烦. 2.用V...
    99+
    2023-06-08
  • css如何实现背景图片自适应全屏
    本文小编为大家详细介绍“css如何实现背景图片自适应全屏”,内容详细,步骤清晰,细节处理妥当,希望这篇“css如何实现背景图片自适应全屏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。css设置背景图片的方法:可以...
    99+
    2023-07-04
  • 关于移动端与大屏幕自适应适配方案
    目录一、安装并配置相应插件1.安装lib-flexible与postcss-pxtorem2.配置lib-flexible与postcss-pxtorem二、设置移动端适配三、注意问...
    99+
    2022-11-13
    移动端自适应 大屏幕自适应 自适应适配
  • 如何通过CSS实现响应式图像的自适应大小
    在现代的Web设计中,响应式设计已经成为了必不可少的一部分。在不同的设备和屏幕尺寸上能够自动调整和适应的网页布局和元素显得尤为重要。而在响应式设计中,图像的自适应大小同样是一个重要的考虑因素。本文将介绍如何通过CSS来实现图像的自适应大小,...
    99+
    2023-10-21
    自适应大小 CSS响应式图像
  • css设置banner图自适应的方法
    这篇文章给大家分享的是有关css设置banner图自适应的方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在css中,可以使用“background-size”设置banner图自适应,语法“backgroun...
    99+
    2023-06-14
  • echarts自适应大小怎么实现
    ECharts是一个可视化图表库,可以通过以下方法来实现自适应大小:1. 使用百分比单位:在设置ECharts容器的宽度和高度时,可...
    99+
    2023-09-29
    echarts
  • CSS3怎么实现自适应全屏焦点图切换特效
    这篇文章主要介绍“CSS3怎么实现自适应全屏焦点图切换特效”,在日常操作中,相信很多人在CSS3怎么实现自适应全屏焦点图切换特效问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • iframe窗口高度自适应的实现方法
    要实现iframe窗口高度自适应,可以通过以下方法:1. 使用JavaScript动态调整iframe的高度:- 在iframe加载...
    99+
    2023-08-11
    iframe
  • css怎么实现图片自适应
    本文小编为大家详细介绍“css怎么实现图片自适应”,内容详细,步骤清晰,细节处理妥当,希望这篇“css怎么实现图片自适应”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。首先,在页面中添加一张图片;<!DOCT...
    99+
    2023-07-04
  • HTML怎么实现elementui table高度自适应屏幕大小变化
    这篇文章主要介绍了HTML怎么实现elementui table高度自适应屏幕大小变化的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇HTML怎么实现elementui tabl...
    99+
    2024-04-02
  • vue大屏展示适配的方法
    本文实例为大家分享了vue大屏展示适配的具体代码,供大家参考,具体内容如下 1.utils文件夹建一个文件cv以下代码 export function useIndex (app...
    99+
    2024-04-02
  • html怎么实现字体大小的自适应
    今天小编给大家分享一下html怎么实现字体大小的自适应的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作