返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue echarts实现改变canvas长和宽自适应
  • 355
分享到

vue echarts实现改变canvas长和宽自适应

2024-04-02 19:04:59 355人浏览 独家记忆
摘要

目录echarts改变canvas长宽自适应方法一:根据浏览器宽高为echarts容器赋宽高方法二:根据echarts容器的父容器的宽高为其赋值echarts自适应屏幕宽度自动改变大

echarts改变canvas长宽自适应

存放Echarts的DOM容器,如果给的高和宽是百分比,渲染的时候DOM容器的高和宽是按百分比给的,但是DOM容器下的子元素div和canvas高和宽是根据图标内容渲染。项目应用的时候,底部会有一部分DOM容器和div的高度差,不美观。

希望Echarts的canvas和DOM容器的高宽一致。

下面给出代码

方法一:根据浏览器宽高为echarts容器赋宽高

<template>
  <div id="main"></div>
</template>
<script>
  import echarts from 'echarts'
  
  export default {
    name: "Chart",
    mounted() {
      var myChartContainer = document.getElementById('main')
	// 获取自适应的高度和宽度
      var resizeMyChartContainer = function() {
        myChartContainer.style.height = window.innerHeight * 0.65 + 'px';
        myChartContainer.style.width = window.innerWidth * 0.75 + 'px';
      };
	// 设置容器高和宽
      resizeMyChartContainer();
      var myChart = echarts.init(myChartContainer);
      let option = {};
      
      myChart.setOption(option);
	// 自适应高和宽
      window.onresize = function () {
        resizeMyChartContainer();
        myChart.resize();
      }
    }
  }
</script>

这里的DOM容器下的div和canvas高和宽和DOM容器一样了

echarts前端的源码

错误1

document.getElementById('main').firstChild.firstChild.style.height = window.innerHeight * 0.55 + 'px'

如果强行获取canvas元素,改变它的高度(上面的div和DOM高度都不变),会把echarts拉高,图像也拉高了,比例不对。

错误2

var myChart = echarts.init(myChartContainer, {width:'800px',height:'400px'});

在初始化的时候传入高和宽,此时DOM元素下的div和canvas的高和宽还是渲染出来的。传入的数据限制了数据展示区域的高和宽。

方法二:根据echarts容器的父容器的宽高为其赋值

首先介绍js获取元素的宽高的方法:

var dom = document.getElementsByClassName('sec')[0];
var w1 = dom.style.width; // 只能获取到内联样式的属性值
var w2 = dom.currentStyle.width; // 虽然支持全部三种设置样式的方式,但是只支持IE
var w3 = window.getComputedStyle(dom).width; // 支持IE、Chrome、Firefox的全部三种样式
var w4 = dom.getBoundinGClientRect().width; // 同样能获取及时的尺寸,支持IE、Chrome、Firefox,只是获取到的是数值不带单位
const resizeMyChartContainer = function() {
	// 无需再进行数值计算的,可直接拿带单位的属性
	const containerWidth = window.getComputedStyle(document.getElementsByClassName('app-main')[0]).width
	const containerHeight = window.getComputedStyle(document.getElementsByClassName('app-main')[0]).height
	// 需进行数值计算的,拿不带单位的属性
	const containerHeightWithoutUnit = document.getElementsByClassName('app-main')[0].getBoundingClientRect().height
	// 百分比计算 并加单位
	myChartContainer.style.height = containerHeightWithoutUnit * 0.65 + 'px'
	myChartContainer.style.width = containerWidth
}

echarts自适应屏幕宽度自动改变大小

Vue组件中在mouted钩子里先调用初始化echarts的方法,然后再添加window监听事件resize,让window监控屏幕大小变化,从而用定时器setTimeout每隔100毫秒执行echart.resize()事件。

注意this的指向,在外面从新定义this=this指向,还有初始化resizeTimer为空

在这里插入图片描述

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: vue echarts实现改变canvas长和宽自适应

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

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

猜你喜欢
  • vue echarts实现改变canvas长和宽自适应
    目录echarts改变canvas长宽自适应方法一:根据浏览器宽高为echarts容器赋宽高方法二:根据echarts容器的父容器的宽高为其赋值echarts自适应屏幕宽度自动改变大...
    99+
    2024-04-02
  • Vue实现Echarts图表宽高自适应的实践
    目录1. 安装并引入2. 定义防抖函数3.  绘制图表代码init 方法resize 方法官网解释1. 安装并引入 npm install echarts --sav...
    99+
    2024-04-02
  • echarts怎么实现自适应宽度
    要实现Echarts图表的自适应宽度,你可以使用以下方法: 使用CSS样式控制容器的宽度:将Echarts绘图容器的宽度设置为一个...
    99+
    2023-10-21
    echarts
  • vue中的echarts实现宽度自适应的解决方案
    今天项目中需要使用到 echarts 为了自适应。找到了。以下解决方案、 效果图 代码 <template> <!-- 这是图表开始 --> &l...
    99+
    2024-04-02
  • vue中设置echarts宽度自适应的代码步骤
    目录问题描述无自适应效果图有自适应效果图代码步骤问题描述 我们使用vue做项目的时候,常常需要做到echarts图表的自适应,一般是根据页面的宽度做对应的适应。本文记录一下设置ech...
    99+
    2024-04-02
  • vue完美实现el-table列宽自适应
    目录背景技术方案具体实现总结背景 Element UI 是 PC 端比较流行的 Vue.js UI 框架,它的组件库基本能满足大部分常见的业务需求。但有时候会有一些定制性比较高的需求...
    99+
    2024-04-02
  • vue如何实现el-table列宽自适应
    这篇文章给大家分享的是有关vue如何实现el-table列宽自适应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue是什么Vue是一套用于构建用户界面的渐进式JavaScript框架,Vue与其它大型框架的区别...
    99+
    2023-06-15
  • Vue使用el-table实现自适应列宽
    本文实例为大家分享了Vue使用el-table实现自适应列宽的具体代码,供大家参考,具体内容如下 主要思路:每次获取分页表格数据时动态计算每列列宽 我的需求是能实现自适应,且不出现横...
    99+
    2024-04-02
  • Vue-cli3中怎么引入ECharts并实现自适应
    本篇内容介绍了“Vue-cli3中怎么引入ECharts并实现自适应”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!效果1. 安装echart...
    99+
    2023-07-02
  • Vue-cli3中如何引入ECharts并实现自适应
    目录如何引入ECharts并实现自适应效果Vue-cli使用ECharts并封装ECharts组件1. 导入echarts2. 封装echarts组件3. 父组件引用测试如何引入EC...
    99+
    2024-04-02
  • echarts自适应大小怎么实现
    ECharts是一个可视化图表库,可以通过以下方法来实现自适应大小:1. 使用百分比单位:在设置ECharts容器的宽度和高度时,可...
    99+
    2023-09-29
    echarts
  • HTML和CSS如何实现宽高自适应
    小编给大家分享一下HTML和CSS如何实现宽高自适应,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!宽度自适应元素宽度设置为100...
    99+
    2024-04-02
  • css宽度自适应怎么实现
    这篇文章将为大家详细讲解有关css宽度自适应怎么实现,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   我们经常会看到这样的页面,左侧(或者右侧)为固定的导航或者菜单栏...
    99+
    2024-04-02
  • vue能实现自适应吗
    本教程操作环境:Windows10系统、vue2&&vue3版、Dell G3电脑。vue能实现自适应吗?能。Vue屏幕自适应三种实现方法详解使用 scale-box 组件属性:width宽度 默认1920height高度 ...
    99+
    2023-05-14
    自适应 Vue
  • vue能不能实现自适应
    这篇文章主要讲解了“vue能不能实现自适应”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue能不能实现自适应”吧!vue能实现自适应,其实现自适应的方法有:1、通过“npm install...
    99+
    2023-07-04
  • Vue中使用Echarts可视化图表宽度自适应的完美解决方案
    目录一、问题阐述:二、解决思路:三、最终效果:一、问题阐述: 开发H5项目中应用到Echarts数据可视化,由于H5主要使用在手机,屏幕宽度大大限制了图表的展现,问题如下。 上图中...
    99+
    2024-04-02
  • CSS怎么实现宽度自适应宽高16:9的矩形
    小编给大家分享一下CSS怎么实现宽度自适应宽高16:9的矩形,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体实现方法:第一步先计算高度,假设宽100%,那么高为...
    99+
    2023-06-08
  • CSS怎么实现菜单背景自适应宽度
    本篇内容主要讲解“CSS怎么实现菜单背景自适应宽度”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS怎么实现菜单背景自适应宽度”吧!本文实例讲述了CSS实现菜...
    99+
    2024-04-02
  • CSS如何实现宽高等比自适应容器
    小编给大家分享一下CSS如何实现宽高等比自适应容器,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在最近开发移动端页面,遇到这么一个情况:当页面宽度 100% 时,...
    99+
    2023-06-08
  • 怎么实现图片高度随宽度自适应
    本篇文章为大家展示了怎么实现图片高度随宽度自适应,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、可以使用js判断图片的宽度得到具体数值之后,再来利用js设置图片的高度(这里就不具体为大家细说了)。...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作