v2 Echarts大屏计算宽高

 1封装组件


<template>
  <div
    class="ScaleBox"
    ref="ScaleBox"
    :style="{
      width: width + 'px',
      height: height + 'px',
    }"
  >
    <slot></slot>
  </div>
</template>
 
<script>
export default {
  name: "ScaleBox",
  props: {},
  data() {
    return {
      scale: 0,
      width: 1920,
      height: 1080,
    };
  },
  mounted() {
    this.setScale();
    window.addEventListener("resize", this.debounce(this.setScale));
  },
  methods: {
    getScale() {
      // 固定好16:9的宽高比,计算出最合适的缩放比
      const { width, height } = this;
      const wh = window.innerHeight / height;
      const ww = window.innerWidth / width;
      console.log(ww < wh ? ww : wh);
      return ww < wh ? ww : wh;
    },
    setScale() {
      // 获取到缩放比例,设置它
      this.scale = this.getScale();
      if (this.$refs.ScaleBox) {
        this.$refs.ScaleBox.style.setProperty("--scale", this.scale);
      }
    },
    debounce(fn, delay) {
      const delays = delay || 500;
      let timer;
      return function () {
        const th = this;
        const args = arguments;
        if (timer) {
          clearTimeout(timer);
        }
        timer = setTimeout(function () {
          timer = null;
          fn.apply(th, args);
        }, delays);
      };
    },
  },
};
</script>
 
<style lang="scss">
#ScaleBox {
  --scale: 1;
}
.ScaleBox {
  position: absolute;
  transform: scale(var(--scale)) translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  transform-origin: 0 0;
  left: 50%;
  top: 50%;
  transition: 0.3s;
  z-index: 999;
  // background: rgba(255, 0, 0, 0.3);
}
</style>

2引用


import ScaleBox from "../../components/ScaleBox/index.vue";
export default {
  name: "bigScreen",
  components: {
    ScaleBox,
  },
  data() {
    return {
      // ----------------------------------------------------------------
    }
}

 3.使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为你介绍一下如何使用v2echarts编写一个玫瑰图,以下是具体步骤: 1. 在HTML文件中加载echarts库和v2插件: ```html <script src="https://cdn.jsdelivr.net/npm/echarts@4.4.0/dist/echarts.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/echarts-gl.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-stat@0.3.2/dist/ecStat.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-liquidfill@1.1.1/dist/liquidfill.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-wordcloud@1.1.1/dist/echarts-wordcloud.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-visual-map@1.1.1/dist/visualMap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/dataTool.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/bmap.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/globe.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/graphGL.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/graphMin2d.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/light.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/map3d.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/echarts-gl@1.1.1/dist/extension/lines3d.min.js"></script> <script src="./v2.min.js"></script> ``` 2. 在JS文件中写入数据和配置项: ```javascript var data = [ { 'value': 20, 'name': '类别1' }, { 'value': 40, 'name': '类别2' }, { 'value': 60, 'name': '类别3' }, { 'value': 80, 'name': '类别4' }, { 'value': 100, 'name': '类别5' }, { 'value': 120, 'name': '类别6' }, { 'value': 140, 'name': '类别7' }, { 'value': 160, 'name': '类别8' } ]; var option = { title: { text: '玫瑰图演示', subtext: '数据来自网络' }, tooltip: { trigger: 'item' }, toolbox: { feature: { saveAsImage: {} } }, legend: { data: ['直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎', '社交网络', '展示广告', '其他'] }, calculable: true, series: [ { name: '访问来源', type: 'pie', radius: [20, 110], center: ['50%', '50%'], roseType: 'area', data: data } ] }; ``` 3. 在HTML文件中定义一个绘图容器: ```html <div id="chart" style="width: 600px;height:400px;"></div> ``` 4. 在JS文件中使用echarts库进行绘图: ```javascript var chart = echarts.init(document.getElementById('chart')); chart.setOption(option); ``` 这样就完成了使用v2echarts编写一个玫瑰图的过程。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值