vue 监听windows窗口大小变化

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

vue 监听windows窗口大小变化 同时修改页面所有echart的大小

网上有很多关于这方面的文章,搜索后大部分比较复杂,自己整理一下适合自己的,直接上代码

 data(){
        return {
         	timer: false
        }
},
mounted(){
        const that = this
        window.onresize = function(){
            if (!that.timer) {
                that.timer = true
                setTimeout(function () {
                    if(this.myChart){
				         this.myChart.resize()
				     }
                    that.timer = false
                }, 400)
            }
        }
    },

只需要监听窗口大小,上面的代码已经够了,然后是echart大小改变的一个细节,我是每个echart图表都是一个组件,一个父组件有多个echart子组件,如下

<Radar  ref="Radar" class="radar" :series="radarSeries" :legend="[]"></Radar>
<AreaGraph ref="AreaGraph" class="graph" :series="areaGraphSeries"></AreaGraph>

开始我在每个子组件都写了一个上面的方法,但是发现页面只有一个图标会随着浏览器大小改变而改变,后面发现需要在父组件绑定才能同时改变所有的图表。水平有限不知道为什么,如果有大神有幸看到这篇文章可以帮我解疑,不胜感激。

父组件代码:
const that = this
        window.onresize = function(){
            if (!that.timer) {
                that.timer = true
                setTimeout(function () {
                    that.$refs.Radar.resizeChart()
                    that.$refs.AreaGraph.resizeChart()
                    that.timer = false
                }, 400)
            }
        }
子组件代码:
 resizeChart(){
 	 if(this.myChart){
         this.myChart.resize()
     }
 },
windows.resize监听事件导致浏览器cpu占用高 1.场景:最近在实现一个监控系统的dashboard页面,这个页面上有很多的echarts图表,当浏览器窗口大小变化时,页面的所有数据要重新计算宽高值,于是使用了window.addEventListener("resize") 来解决这个问题。 2. 结果:在使用过程中,发现当浏览器窗口多次改变大小之后,页面卡顿的很厉害,查看浏览器的cpu占用率也很高,迟迟降不下来。郁闷中~,因为在之前的项目中也使用过监听事件,但没有发现过这个问题,就很自信~,罪过呀 3.排查了很长时间,各种百度,无意中看到wind 阅读详情

相关推荐

AGX Orin 部署PyTorch与Torchvision 2026避坑指南

本文提供了2026年在AGX Orin开发板上部署PyTorch与Torchvision的详细避坑指南。针对ARM64架构和JetPack 6.2系统,重点解决了Python 3.10环境配置、官方wheel包安装、torchvision源码编译等关键步骤,并分享了常见问题解决方案和性能优化技巧,确保深度学习环境稳定运行。

sky77的博客 733

VUE】改变窗口大小触发函数模板

VUE框架,mounted中挂载 mounted: function mounted() { this.selfAdaption(); } mothods: { selfAdaption: function selfAdaption() { var _this = this; setTimeout(function () { window.o...

u013155797的博客 1417

川崎机器人 AS语言基础运动指令表

    功能简介 动作方式 参考坐标系 位置特性 X,Y,Z 角度特性 O,A,T 指令格式(距离单位毫米,时间单位秒,角度单位度 示例1 示例2 运 动 指 令 JMOVE 以关节移动到目标点 关节移动方式 基础坐标系 不受控 伪随机动作 JMOVE 目标点 JMOVE #yd JMOVE put1 LMOVE 以直线移动到目标点 直线移动方式

喜欢自学并分享经验的技术宅 9293

vue监听窗口大小发生变化,实现自适应

首先在data定义变量: data() { return { screenWidth: document.body.clientWidth }; }, 监听窗口大小变化: mounted() { const that = this; window.onresize = () => (() => { window.screenWidth = document.body.

Abenazhan的博客 9574

vue2实现浏览器大小变动页面缩放功能

在页面html部分获取元素对象(这个一般设置在页面div的第二层)。4.页面具体内容的宽高最好设置。这样按比例的属性会导致在不同分辨率下的排版出现问题(比如1920跟1366)。需要实现根据浏览器大小变化从而页面内容同样缩放思想实现:1.使用css中的。监听方法,监听尺寸变化从而调用缩放相关方法。这样的具体属性,如果设置。获取操作应该也是一样的。

菜鸡奋斗ing的博客 6309

Vue如何监视屏幕尺寸变化

Vue如何监视屏幕尺寸变化 1、在data中定义一个值记录屏幕尺寸 data(){ return{ screenWidth: null, //屏幕尺寸 } } 2、页面获取屏幕尺寸的值 mounted () { this.screenWidth = document.body.clientWidth window.onresize = () => { //屏幕尺寸变化就重新赋值 return (() => { this.screenW

qq_47452289的博客 6178

vue监听dom元素变化修改echar图表

文章目录前言一、install监听依赖二、使用步骤1.监听指定id并修改echarts宽高 前言 提示:这里可以添加本文要记录的大概内容: vue监听dom元素变化 提示:以下是本篇文章正文内容,下面案例可供参考 一、install监听依赖 npm install element-resize-detector 二、使用步骤 1.监听指定id并修改echarts宽高 代码如下(示例): const that = this; var elementResizeDetectorMaker =

qq_42091310的博客 1062

Vue 页面高度撑满屏幕

第一步: 此时应该在App.vue文件style中添加如下代码: html,body,#app{ height: 100%; } 第二步: 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clientHeight 网页可见区域宽:document.body.offsetWidth (包括边线的宽) 网页可见区域高:document.body.offsetHeight (包括边线的宽) 我们将document.body.clientWidth赋值

ZPCrobot的博客 4015

窗口大小变化触发了右侧区域的 “销毁 - 重建” 切换,导致两次渲染刷新

右侧编辑器(包括资源查询页面)刷新两次,本质是条件渲染导致的组件重复挂载,具体布局逻辑中 “右侧区域的双重条件显示” 有关。右侧区域存在两个结构相似的 (侧边栏),分别对应不同的显示条件:第一次渲染: 页面加载时, 初始值为 (默认非悬浮),因此 中的侧边栏会先渲染,触发第一次内容加载。 第二次渲染: 代码中存在窗口大小监听( 中的 函数),会根据窗口宽度动态修改 的值(当宽度小于阈值时设为 )。 新渲染的侧边栏会重新加载内容(如资源查询页面),导致第二

2302_80710750的博客 567

前端监听屏幕宽度尺寸变化vue2)

前端监听屏幕宽度尺寸变化vue2)

weixin_43811753的博客 973

vue中watch监听浏览器窗口大小的改变

首先,watch监听的是data中的属性,并不能直接监听window,如图 先定义data中一个screenwidth属性,然后这个时候我们可以用watch监听到screenWidth,但是当改变窗口大小时,并不会打印改变之后的值,即只监听了一次,不能持续监听,于是在mounted中调用window.onresize方法,然后就可以持续监听了 ...

ju__ju的博客 9719

Vue3前端模仿实现Windows窗口

基于vue-cli脚手架使用Vue3+TS技术,在前端实现类似windows窗口,可以对窗体容器拖拽,窗口大小调整等,封装成两个指令与一个组件,可以选择性调用,扩展性强。

咚の窝 8165

VueJs 监听 window.resize 方法

Vuejs 本身就是一个 MVVM 的框架。 但是在监听 window 上的 事件 时,往往会显得 力不从心。 比如 这次是 window.resize 恩,我做之前也是百度了一下。看到大家伙都为这个问题而发愁。 问题: 今天我也 遇到了这样一个问题, 是关于canvas 自适应。 根据窗口变化变化 canvas 的宽度 备注: 重要的问题说三遍 解决 框架内的bug 先说...

weixin_30520015的博客 109

3.Golang + Gin + VUE3/React + Tailwindcss + Tauri2.0 实现Linux管理系统-头部功能实现

本文介绍了使用Golang、Gin、Vue3/React、Tailwindcss和Tauri2.0实现Linux管理系统头部功能的过程。主要内容包括:1)通过Tauri API获取窗口对象;2)实现窗口最大化状态检测及图标动态显示;3)完成最小化、最大化/还原、关闭窗口等交互功能;4)利用Tauri事件监听实现窗口状态变化的实时响应。文章详细展示了前端组件代码实现,包括Vue3的响应式数据绑定和生命周期管理,为开发者提供了完整的窗口控制功能实现方案。

weixin_39141295的博客 483

vue,适配电脑不同分辨问题,适配比例为100%和125%分辨率导致页面样式错乱问题

他基本是固定了关于vue项目的显示,不管是屏幕显示比例还是浏览器显示比例改变,项目的显示都不会受到影响,但是其他外部嵌入页面依然会随显示比例的改变而改变。新建一个js文件,名字随便起,这里命名为devicePixelRatio.js。或者其它全局的文件中引入并使用。

Z_Gleng的博客 2326

vue2+element禁止web页面被进行缩放,并修复element被zoom后部分组件错位问题-(1)

vue2+element禁止web页面被进行缩放,并修复element被zoom后部分组件错位问题

m0_61689817的博客 760

深入解析Loop窗口管理器的架构设计与实现原理

在当今多任务处理成为常态的数字工作环境中,Mac用户经常面临窗口管理效率低下的困扰。频繁的手动调整窗口大小、拖拽位置、切换屏幕等操作不仅打断了工作流,还消耗了大量宝贵时间。Loop窗口管理器应运而生,它通过优雅的Swift架构和智能算法,为macOS系统提供了一套完整的窗口自动化管理解决方案。本文将从技术架构、核心实现、扩展机制等多个维度,深入探索Loop如何重新定义macOS窗口管理体验。 #

gitblog_00428的博客 490

vue项目下,笔记本显示跟PC显示比例为125%、150%对页面造成的影响

浏览器显示比例,屏幕显示比例,vue项目显示问题

发育中的前端 1万+

VUE中Echarts的resize事件报错和移除windows的事件

Echarts的resize事件报错 原因:echart的api只有在实例化之后才能调用,如果直接调用肯定会导致报错 解决方式:在调用resize的之前判断是否已经实例化 this.barchart = this.$echarts.init(dom) // 实例化Echarts对象 /****************/ if(this.barchart) { // 方法一 this.syqchart.resize() } /****************/ this.syqchart &&amp

qq_37622750的博客 1899

Vue后台项目适配各种分辨率以及网页缩放

这里就不再过多举例了,直接上代码,cv就完事了。浏览器适配方案(这里也做了分辨率适配)

Dodddhdhdg的博客 862
上一篇: PYTHON 进程 线程 websocket
下一篇: vue echart配合百度地图
冰码达
博客等级 码龄8年 3粉丝 15原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰码达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值