Echarts图表移动端横屏进入退出的实现

 更新时间:2023年05月09日 10:07:14   作者:水冗水孚  
本文主要介绍了Echarts图表移动端横屏进入退出的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

效果图

147.gif

代码

<template>
  <div class="outWrap">
    <div
      :class="
        isHorizontalScreen ? 'horizontalEchartsFather' : 'verticalEchartsFather'
      "
    >
      <!-- 全屏进入退出按钮 -->
      <h3
        @click="switchFn"
        :class="isHorizontalScreen ? 'horizontalIcon' : 'verticalIcon'"
      >
        {{ isHorizontalScreen ? "退出横屏" : "进入横屏" }}
      </h3>
      <!-- echarts部分 -->
      <div
        id="echartsId"
        :class="isHorizontalScreen ? 'horizontal' : 'vertical'"
      ></div>
    </div>
  </div>
</template>
<script>
import Echarts from "echarts";
export default {
  data() {
    return {
      myChart: null, // echarts的实例
      isFull: false, // 是否全屏
      isHorizontalScreen: false, // 是否是横向屏幕,默认false,默认是竖向屏幕
      option: {
        dataZoom: [
          {
            type: "inside",
          },
        ],
        xAxis: {
          data: [
            "4.1",
            "4.2",
            "4.3",
            "4.4",
            "4.5",
            "4.6",
            "4.7",
            "4.8",
            "4.9",
            "4.10",
            "4.11",
            "4.12",
            "4.13",
            "4.14",
            "4.15",
            "4.16",
            "4.17",
          ],
        },
        yAxis: {},
        series: {
          name: "股价",
          type: "line",
          data: [
            51, 61, 71, 27, 19, 20, 15, 8, 21, 2, 19, 66, 88, 4, 21, 77, 6,
          ],
          itemStyle: {
            normal: {
              color: "green", //改变折线点的颜色
              lineStyle: {
                color: "green", //改变折线颜色
              },
            },
          },
        },
      },
    };
  },
  watch: {
    // 当横屏进入退出要重绘一下echarts
    isHorizontalScreen(newVal) {
      console.log("横屏切换", newVal);
      this.myChart.setOption(this.option, true);
      this.$nextTick(() => {
        this.resize();
      });
    },
  },
  mounted() {
    // 添加自适应监听
    window.addEventListener("resize", this.resize);
    this.echarts();
  },
  methods: {
    // 初始化
    echarts() {
      this.myChart = Echarts.init(document.querySelector("#echartsId"));
      this.myChart.setOption(this.option);
    },
    resize() {
      this.myChart.resize(); // 窗口大小发生变化的时候重置
    },
    // 切换 水平垂直~全屏默认屏
    switchFn() {
      this.isHorizontalScreen = !this.isHorizontalScreen;
      this.isFull = !this.isFull;
    },
  },
  // 移除自适应监听
  beforeDestroy() {
    window.removeEventListener("resize", this.resize);
  },
};
</script>
<style lang="less" scoped>
// 最外层满屏
.outWrap {
  width: 100%;
  height: 100vh;
  background: #e9e9e9;
}
/* 用于给竖向echarts画布定位用 */
.verticalEchartsFather {
  width: 100%;
  height: 50%;
  background-color: #fff;
  position: relative;
}
// 竖向的正常百分比即可
.vertical {
  width: 100%;
  height: 100%;
}
/* 用于给横向echarts画布定位用,横向就旋转90度即可 */
.horizontalEchartsFather {
  transform: rotate(90deg);
  position: relative;
  width: 100%;
}
// 因为横向了,所以颠倒一下
.horizontal {
  width: 100vh;
  height: 100vw;
}
/* 进入横屏和退出横屏两套样式,定位在不同的位置 */
.verticalIcon {
  position: absolute;
  top: 2px;
  right: 6px;
  z-index: 999;
  user-select: none;
}
.horizontalIcon {
  position: absolute;
  top: 2px;
  left: 6px;
  z-index: 999;
  user-select: none;
}
</style>

总结

横屏的时候,即为竖屏旋转90度,加上监听控制,然后改一下样式,最后别忘了重绘一下Echarts

到此这篇关于Echarts图表移动端横屏进入退出的实现的文章就介绍到这了,更多相关Echarts移动端横屏内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript中新数组分组方法详解

    JavaScript中新数组分组方法详解

    对数组中的项目进行分组,你可能已经做过很多次了,好消息是,JavaScript 现在有了分组方法,所以你再也不必这样做了,下面我们就来看看它们的具体使用吧
    2024-02-02
  • JS面向对象的程序设计相关知识小结

    JS面向对象的程序设计相关知识小结

    这篇文章主要介绍了JS面向对象的程序设计,现在很多代码都是基于面向对象实现,需要的朋友可以参考下
    2018-05-05
  • 使用Js让Html中特殊字符不被转义

    使用Js让Html中特殊字符不被转义

    怎么让<textarea></textarea>之间包含的文本原封不动的显示出来呢?下面小编就为大家介绍一下具体的实现方法吧
    2013-11-11
  • 纯javascript模仿微信打飞机小游戏

    纯javascript模仿微信打飞机小游戏

    纯JavaScript模仿微信打飞机游戏,做网页小游戏的借鉴下,界面设计是竖长形仿手机屏幕风格,游戏效果流畅,通过本篇文章给大家分享纯js如何实现模仿微信打飞机小游戏,需要的朋友可以参考下
    2015-08-08
  • JavaScript和CSS通过expression实现Table居中显示

    JavaScript和CSS通过expression实现Table居中显示

    如何将表格居中的显示使用一个叫expression的函数,多数的浏览器都支持这个函数,感兴趣的朋友可以看一下具体的实现哈
    2013-06-06
  • 详谈LABJS按需动态加载js文件

    详谈LABJS按需动态加载js文件

    为了提高页面的打开和加载速度,我们经常把JS文件放在页面的尾部,但是有些JS必须放在页面前面,这样就会增加页面的加载时间;于是出现了按需动态加载的概念,这个概念就是当页面需要用到这个JS文件或者CSS渲染文件的时候,在去请求这些文件,这样就节省了页面的加载时间
    2015-05-05
  • js图片轮播特效代码分享

    js图片轮播特效代码分享

    这篇文章主要介绍了js图片轮播特效,图片切换效果特别适合做产品演示,感兴趣的小伙伴可以参考下
    2015-09-09
  • js脚本中执行java后台代码方法解析

    js脚本中执行java后台代码方法解析

    这篇文章主要介绍了js脚本中执行java后台代码方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • JavaScript中let与const命令使用

    JavaScript中let与const命令使用

    本文主要介绍了JavaScript中let与const命令使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • JavaScript实现烟花绽放动画效果

    JavaScript实现烟花绽放动画效果

    这篇文章主要介绍了JavaScript如何实现烟花绽放动画效果,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-08-08

最新评论