我是靠谱客的博主 壮观蜗牛,最近开发中收集的这篇文章主要介绍vue中监听页面旋转,echarts移动端全屏展示,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

因为是移动端,适配用的postcss-px2rem,所以当横屏的时候,样式会错乱

 mounted() {
    // 监听页面旋转
    window.addEventListener("onorientationchange" in window ? "orientationchange" : "resize", this.isPortrait, false);
 }
 methods: {
	 // 横竖屏
    isPortrait() {
      if (window.orientation === 180 || window.orientation === 0) {
        console.log('竖屏');
       
        return true;
      }
      if (window.orientation === 90 || window.orientation === -90) {
        console.log('横屏');
        // 不好使
        document.getElementsByTagName('html')[0].style.fontSize = '37.5px';
        // 不好使
        // this.$nextTick(() => {
        //   document.getElementsByTagName('html')[0].style.fontSize = '37.5px';
        // });
        return false;
      }
    },
}

最终就不再监听页面的旋转,而是监听页面尺寸的变化

mounted() {
// 页面尺寸的变化
window.addEventListener("resize", this.renderResize, false);
}
methods() {
  renderResize() {
      document.getElementsByTagName('html')[0].style.fontSize = '37.5px';
      this.myEcharts.resize();  // 在这里是为了完成表的横屏展示哈
    },
}

思考:当时还在想页面旋转这个api有没有回调函数。经过这次,可以知道,页面旋转在前,然后尺寸发生变化,可以在尺寸变化时写一些方法,也就相当于是在旋转的回调里写了

 // 根据不同的屏幕宽度换算字体大小  如果后期返回echarts图标字体不会变化
    transformFontSize(fontsize) {
      const width = window.screen.width;
      const ratio = width / 1920;
      return parseInt(fontsize * ratio);// eslint-disable-line 
    },

这波echarts的全屏展示,因为我是内嵌在app里的,所以呢,我要全屏展示的额时候会给app通信,app去调机器的api(这个是我想的逻辑,具体app怎么操作的我不清楚哈),当时和app确定过,如果用户锁定竖屏状态他能否调成功,app开发说是可以的。web这变就很简单了,就是做个图标的重绘就可以的

app和web通信用的是下面的工具库

import { webViewContent } from 'hybrid-webframework';

export default {
    listen: (message, callback) => {
        return webViewContent.listenMessage(message, callback);
    },
    send: (message, prama, listener) => {
        return webViewContent.sendMessage(message, prama, listener);
    }
};

最后

以上就是壮观蜗牛为你收集整理的vue中监听页面旋转,echarts移动端全屏展示的全部内容,希望文章能够帮你解决vue中监听页面旋转,echarts移动端全屏展示所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部