前端监听分辨率,menu切换,FullCalendar日历高度赋值

news2024/12/23 15:32:36

这是vue

之前写过一个监听页面分辨率改变,给高度赋值的项目

throttle是一种常见的函数节流技术,用于控制函数在一定时间间隔内执行的次数。当需要频繁触发某个函数时,使用节流技术可以避免函数被频繁执行,从而提高页面性能。

throttle的基本思想是,将函数的执行频率限制在一定时间间隔内。当函数被触发时,如果距离上次执行的时间小于指定的时间间隔,则不执行函数;否则,执行函数并记录当前执行的时间戳。

 

这里乱写的,不重要,主要实现逻辑就是这样

今天要写一个值班表,使用 FullCalendar,但是这个只有宽度会自动改变,高度根本不动啊

继续套上面的代码,但是遇到问题,之前的都是跳转路由,beforeDestroy可以销毁

但是这个值班表项目整体框架是iview的menu,beforeDestroy不能销毁

多次尝试发现,menu的点击会有缓存,就是说mounted只会执行一次,那么销毁后,我们还需要考虑再次赋这个监听时间。

这样就能销毁了,然后考虑menu点击回来赋值。 

 

不多废话,下面贴代码:

import { throttle } from 'lodash'

tf: null,

mounted() {

    // 按钮绑定日历点击事件

    this.$nextTick(() => {

      this.$refs.fullCalendar.getApi().updateSize()

      // 点击上个月

      const prevBtn = document.querySelector('.fc-prev-button')

      prevBtn.addEventListener('click', () => {

        this.initData()

      })

      // 点击下个月

      const nextBtn = document.querySelector('.fc-next-button')

      nextBtn.addEventListener('click', () => {

        this.initData()

      })

      // 当月

      const todayBtn = document.querySelector('.fc-today-button')

      todayBtn.addEventListener('click', () => {

        this.initData()

      })

    });

    // 日历适配分辨率

    this.tf = throttle(this.handleResize, 200)

    window.addEventListener('resize', this.tf)

    this.handleResize()

    // 初始化日历

    this.initData()

    const transferLists = document.querySelectorAll('.ivu-transfer-list');

    transferLists[0].style.width = '30%';

    transferLists[1].style.width = '55%';

  },

// 这个没用,后面研究一下

  // beforeDestroy() {

  //   window.removeEventListener('resize', this.tf)

  // },

  beforeRouteLeave(to, from, next) {

    window.removeEventListener('resize', this.tf)

    next();

  },

  beforeRouteEnter(to, from, next) {

    const doSomething = (vm) => {

      // 日历适配分辨率

      vm.tf = throttle(vm.handleResize, 200)

      window.addEventListener('resize', vm.tf)

      // 在nextTick回调函数中访问$refs对象

      vm.$nextTick(() => {

        vm.handleResize()

      });

      // 设置leftRoute标志

      vm.leftRoute = from.path !== to.path;

    };

    next(vm => {

      // 在回调函数中访问组件实例并调用doSomething方法

      doSomething(vm);

    });

  },

 // 解决日历渲染的分辨率变化bug

    handleResize() {

      const calendar = this.$refs.fullCalendar.getApi();

      const height = document.documentElement.clientHeight - 185;

      calendar.setOption("height", height);

      calendar.updateSize();

    },

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/695312.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

考研算法33天:基数排序 【基数排序】

算法介绍 我们前一天写了一道桶排序&#xff0c;今天开始看它的进化版&#xff1a;基数排序&#xff0c;为啥会有这个算法呢?因为我们桶排序有一部是需要统计每个数字出现的次数因此需要开一个相对大的数组 for(int i0;i<n;i){s[q[i]]; } 但是就像快速排序这道题&#x…

三相一次重合闸程序逻辑原理(一)

该功能是在原线路保护的基础上&#xff0c;利用资源共享的原理&#xff0c;不增加任何硬件&#xff0c;采用软件方式实现无压或同期鉴定方式的三相一次重合闸&#xff08;该基本原理参见附录C&#xff09;。 &#xff08;一&#xff09;重合闸的起动 重合闸有两种起动方式&…

centos7 安装Python3.9

1. 安装编译相关软件 su yum -y groupinstall "Development tools" yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel yum install libffi-devel -y2.下载安…

【pycharm】 Anaconda3 和 pycharm 安装配置2

conda3更新2.4.2需要websocket库,后面配置好了虚拟环境就可以自动更新下载 现在就有了:python 控制台 看起来不能再python console里执行pip3 感觉会进入 anaconda3 的 python库? no such option: -e PS D:\XTRANS

漏洞深度分析 | Apache StreamPipes 存在权限绕过漏洞导致垂直越权

项目地址 https://github.com/apache/streampipes 项目介绍 Apache StreamPipes 使工业数据分析变得简单&#xff01; StreamPipes 是工业物联网的端到端工具箱。它带有针对非技术用户的丰富的图形用户界面&#xff0c;并提供以下功能&#xff1a; 快速连接超过 20 种工业协…

背包问题: 01背包, (python, golang, c)

01背包 题目 2. 01背包问题 - AcWing题库 有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi&#xff0c;价值是wi。求解: 将哪些物品装入背包&#xff0c;可使这些物品的总体积不超过背包容量&#xff0c;且总价值最大。 输出最大价值。 思路 ht…

反调试专题丨反调试之BeingDebugged

一、x86下IsDebuggerPresent反调试以及反反调试 1、反调试 进程结构体PEB偏移0x2处是一个标志位&#xff0c;当当前程序在调试状态下时&#xff0c;这个标志位就会被改变&#xff1a; nt!_PEB 0x000 InheritedAddressSpace : UChar 0x001 ReadImageFileExecOptions : …

1-vue3初探学习1

vue3插件&#xff1b; vscode插件&#xff1b; 1.volar 【在vscode上安装】 -vue3.x的插件 2.浏览器作为服务的测试版本 Live Server --作为简要服务使用 1-vue3初探学习&#xff1a; 网站&#xff1a; https://cn.vuejs.org/ 2.cdn文件 https://unpkg.com/vue3/dist…

高性能消息中间件 RocketMQ

一、MQ简介 1.1 什么是MQ 消息&#xff1a;是MQ中最小的概念&#xff0c;本质就是一段数据。 队列&#xff1a;在MQ中使用队列的数据结构来存储消息。 MQ是把消息和队列结合起来&#xff0c;称为消息队列&#xff08;Message Queue&#xff09;&#xff0c;是基础数据结构中…

敏捷需求、迭代、缺陷规划管理工具

敏捷使用产品Backlog来管理需求&#xff0c;产品Backlog是一个需求的清单&#xff0c;按照需求的商业价值排序&#xff0c; 高优先级的需求在Backlog的最上层。产品Backlog是一个渐进明细的清单&#xff0c;它有4个主要特点&#xff0c;称之为DEEP&#xff1a; Detailed 合适的…

Midjourney推出5.2版本,更新zoom out功能

Midjourney是一款专业的图像处理软件&#xff0c;它可以让用户轻松地创造出高质量的图像。它最近宣布推出了5.2版本&#xff0c;这是一个重大的更新&#xff0c;其中最亮眼的功能就是zoom out功能。 zoom out功能可以让用户无限地缩小原始图像&#xff0c;同时保持图像的清晰度…

【http服务】使用命令来查看和停止端口

需求: 在Windows 10上&#xff0c;使用命令来查看和停止端口8000上的进程。 方法&#xff1a; 要查看所有端口以及它们所属的进程&#xff0c;您可以使用以下命令&#xff1a; Get-NetTCPConnection | Select-Object LocalPort, OwningProcess这将显示所有TCP连接的本地端口…

【Spring Cloud Alibaba Seata 处理分布式事务】——每天一点小知识

&#x1f4a7; S p r i n g C l o u d A l i b a b a S e a t a 处理分布式事务 \color{#FF1493}{Spring Cloud Alibaba Seata 处理分布式事务} SpringCloudAlibabaSeata处理分布式事务&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨ &#x1f98…

CentOs8开启网卡配置

1.查看网卡文件 ls /etc/sysconfig/network-scripts/ 网卡文件名为 ifcfg-ens160 2.编辑网卡配置 vi /etc/sysconfig/network-scripts/ifcfn-ens160 按Esc结束编辑&#xff0c;然后冒号 : 输入 wq保存并退出 3.启用网卡 nmcli c up ens160 ##centos8网络管理命令 nmcl…

多元回归预测 | Matlab灰狼算法(GWO)优化极限学习机ELM回归预测,GWO-ELM回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab灰狼算法(GWO)优化极限学习机ELM回归预测,GWO-ELM回归预测,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环…

AI智慧安监EasyCVR平台长时间运行出现协程高的现象是什么原因?

EasyCVR视频融合平台基于云边端协同架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台支持海量视频汇聚管理&#xff0c;可支持多协议接入&#xff0c;包括市场主流标准协议与厂家私有协议及SDK&#xff0c;如&#xff1a;国标GB28181、RTMP、RTSP/Onvif、海…

idea2019.3启动不起来_卡在启动界面

.其实是因为Windows的语音设置导致的. 这里可以,找到控制面板,然后找到,右上角查看方式,选择,类别 2.然后找到时钟和区域 点击时钟和区域 然后 点击区域 然后在区域界面 点击区域选项卡,然后找到 管理,点击管理,然后点击更改系统区域设置 然后看下面的图,这里不要勾选Beta版…

工程安全监测无线振弦采集仪在建筑物的应用分析

工程安全监测无线振弦采集仪在建筑物的应用 工程安全监测无线振弦采集仪是一种在建筑物中应用的重要设备。它通过无线采集建筑物内部的振动信息&#xff0c;对建筑物的安全性进行监测和评估&#xff0c;为建筑物的施工和使用提供了可靠的技术支持。本文将详细介绍工程安全监测…

ModaHub魔搭社区:向量数据库Milvus部署运维问题教程(一)

目录 部署运维问题 如果在安装 Milvus 时&#xff0c;从 Docker Hub 拉取镜像总是失败怎么办&#xff1f; Milvus 只能使用 Docker 部署吗&#xff1f; 为什么 Milvus 返回 config check error 的错误&#xff1f; 为什么在导入数据时 Milvus 显示 no space left on devic…

【Spring Cloud Alibaba Sentinel 实现熔断与限流】 —— 每天一点小知识

&#x1f4a7; S p r i n g C l o u d A l i b a b a S e n t i n e l 实现熔断与限流 \color{#FF1493}{Spring Cloud Alibaba Sentinel 实现熔断与限流} SpringCloudAlibabaSentinel实现熔断与限流&#x1f4a7; &#x1f337; 仰望天空&#xff0c;妳我亦是行人.✨…