Echarts图表移动端横屏进入退出的实现
作者:水冗水孚 发布时间:2024-05-11 09:06:45
标签:Echarts,横屏
效果图
代码
<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>
来源:https://juejin.cn/post/7220396447464243256


猜你喜欢
- 函数getcache,会自动建立需要的缓存。 代码如下:Function getcache(funsname,isreset,is
- 这篇文章主要介绍了python集合删除多种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 安装PIL库的时候,直接提示:Python version 2.7 required, which was not found in the
- 本文实例讲述了python实现查找两个字符串中相同字符并输出的方法。分享给大家供大家参考。具体实现方法如下:seq1 = "spa
- 学习笔记,写到哪是哪。接着上一篇对纯文本文件读写操作,主要去实现一些文件夹操作。创建文件夹创建文件夹的时候往往要先判断文件夹是否存在。样例代
- 本文缘起自《一分钟了解索引技巧》的作业题。假设订单业务表结构为:order(oid, date, uid, status, money, t
- 这种问题,初学者应该都会遇到,分享给大家做个参考!from urllib.parse import quoteimport string#解
- hello,小伙伴们大家好,今天给大家介绍的开源项目是Python虚拟环境管理工具,Pipenv是Python官方推荐的包管理工具。可以说,
- 环境准备Python3.5以上Appium Server服务器Android SDK,需要用到adb服务需要依赖Appium-Python-
- 方法一: 代码如下:id=request.form("checkbox") id=Split(id,"
- 一、导入re库python使用正则表达式要导入re库。import re在re库中。正则表达式通常被用来检索查找、替换那些符合某个模式(规则
- 1、 在sublime text的官网下载,是适合自己系统的版本。官网地址:https://www.sublimetext.com/32、安
- 有一个表user,字段分别有id、nick_name、password、email、phone。一、单字段(nick_name)查出所有有重
- 问题你想使用一个简单的REST接口通过网络远程控制或访问你的应用程序,但是你又不想自己去安装一个完整的web框架。解决方案构建一个REST风
- 使用JdbcTemplate的步骤1、设置spring-jdbc和spring-tx的坐标(也就是导入依赖) <depen
- 本文实例讲述了Python实现二维数组按照某行或列排序的方法。分享给大家供大家参考,具体如下:lexsort支持对数组按指定行或列的顺序排序
- 作为胶水语言,Python可以很方便的执行系统命令,Python3中常用的执行操作系统命令有os.system()、os.popen()、s
- 本文实例讲述了Symfony2框架表单用法。分享给大家供大家参考,具体如下:对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战
- Mako是一个模板库。一种嵌入式的语言,能够实现简化组件布局以及继承,主要的用途也是和作用域有关,但是效果是最直接切灵活的,这些都是mako
- 运行结果(2020-2-4日数据)数据来源news.qq.com/zt2020/page/feiyan.htm抓包分析日报数据格式"