vue监听dom元素的宽高变化和自定义指令监听dom元素的宽高变化

vue监听dom元素的宽高变化和自定义指令监听dom元素的宽高变化

1.监听dom元素的宽高变化

你可以使用Vue的指令v-on和v-bind来动态监听div的宽度。

首先,在Vue实例中声明一个data属性,用来存储div的宽度值。例如:

data() {return {divWidth: null, // 存储div的宽度}
}

然后,在div元素上使用v-bind将div的宽度绑定到data属性divWidth上,并使用v-on指令监听window的resize事件,当窗口大小发生变化时更新div的宽度值。如下所示:

<template><div><div ref="myDiv" :style="{ width: divWidth + 'px' }"></div></div>
</template><script>
export default {data() {return {divWidth: null,}},mounted() {// 在mounted钩子函数中获取div的初始宽度this.divWidth = this.$refs.myDiv.offsetWidth;// 监听窗口的resize事件,更新div的宽度window.addEventListener('resize', this.updateDivWidth);},methods: {updateDivWidth() {this.divWidth = this.$refs.myDiv.offsetWidth;}},beforeDestroy() {// 在组件销毁前,移除resize事件监听window.removeEventListener('resize', this.updateDivWidth);},
}
</script>

2.自定义指令监听dom元素的宽高变化

 directives: {  // 使用局部注册指令的方式resize: { // 指令的名称bind(el, binding) { // el为绑定的元素,binding为绑定给指令的对象let width = '', height = '';function isReize() {const style = document.defaultView.getComputedStyle(el);if (width !== style.width || height !== style.height) {binding.value();  // 关键}width = style.width;height = style.height;}el.__vueSetInterval__ = setInterval(isReize, 300);},unbind(el) {clearInterval(el.__vueSetInterval__);}}
}

在html中使用:

<div v-resize="resize"></div> // 绑定的resize是一个函数
//在methods中
resize() {  // 当宽高变化时就会执行//执行某些操作
}

当然可以结合一下1和2 这里就不做演示了。

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

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

相关文章

ipad可以使用其他品牌的手写笔吗?平价ipad手写笔推荐

我是一个拥有多年数码经验的爱好者&#xff0c;我知道一些关于电容笔的知识。我认为&#xff0c;苹果原装的电容笔与普通的电容笔最大的不同之处&#xff0c;就是其所带来的压感不同。由于“重力压感”的特殊性&#xff0c;我们能很快地把色彩填充到画面中。除此之外&#xff0…

亿发软件:数字化大中型制造企业生产管理应用,实现智慧工厂信息化

随着信息技术与制造业的深度协调&#xff0c;作为企业发展的趋势&#xff0c;大中型制造企业需要拥抱信息化建设。通过运用信息技术和数字化运营&#xff0c;大中型制造企业的生产、设计、经营、管理、后续服务等都实现自动化、智能化。大中型制造企业信息化建设解决方案&#…

uniapp中axios封装和环境配置

axios版本 最好锁定版本&#xff0c;避免bug axios-miniprogram-adapter这个依赖主要是适配小程序网络请求的适配器&#xff0c;为了解决uniapp 适配axios请求&#xff0c;避免报adapter is not a function错误 cnpm i axios0.26.0 axios-miniprogram-adapter 配置adapter函…

Cadence PCB 仿真Model Integrity专题

&#x1f3e1;《总目录》   &#x1f3e1;《宝典目录》 目录 1&#xff0c;内容概述2&#xff0c;内容目录 1&#xff0c;内容概述 本专题详细介绍Cadence的仿真建模工具 Model Integrity。 2&#xff0c;内容目录 Cadence PCB仿真 Model Integrity 功能详述与启动方法图文教…

bean的生命周期

生命周期&#xff1a;从生到死的过程。那么对于bean来说就是从创建到销毁的过程。 普通的Java对象的创建由我们new创建&#xff0c;然后在不用的时候&#xff0c;java回收机制会自动回收。那么bean呢&#xff1f; bean是spring中的对象&#xff0c;和普通对象不一样的就是bea…

基于Python+ResNet50算法实现一个图像识别系统案

题解 | #完全平方数的草料# class Solution {public: /** * 代码中的类名、方法名、参数名已经指定&#xff0c;请勿修改&#xff0c;直接返回方法规定的值即可 * 新东方南昌学校招聘编程竞赛教练 工作职责&#xff1a;1、教学工作&#xff1a;为学员提供编程Python&#xf…

springboot-防止sql注入,xss攻击,cros恶意访问

1.sql注入 sql注入: 把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行恶意的SQL命令 解决方法&#xff1a; 1)无论是直接使用数据库还是使用如mybatis组件&#xff0c;使用sql的预编译&#xff0c;不要用拼接字符串。 2)后…

Unity游戏源码分享-Unity手游火柴忍者游戏StickmanDojo

Unity游戏源码分享-Unity手游火柴忍者游戏StickmanDojo 项目地址&#xff1a;https://download.csdn.net/download/Highning0007/88050234

蒲公英打包环境搭建碰到问题

一&#xff1a;证书那边选择手动&#xff0c;不要自动&#xff0c;——》debug配置dev证书&#xff0c;release配置ad-hoc证书 二&#xff1a;证书有时候不生效&#xff0c;删除重新下载。~/Library/MobileDevice/Provisioning Profiles 三&#xff1a;更新测试手机时&#…

Mysql索引与事务

目录 一、索引 1、概念 2、作用 3、副作用 二、事务 1、概念 2、ACID特点 原子性 一致性 隔离性 持久性 一、索引 1、概念 索引是一个排序的列表&#xff0c;在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址&#xff08;类似于C语言的链表通过指针…

OpenCv色彩空间

目录 一、RGB 二、图像处理入门 三、色彩空间的转换 一、RGB 在表示图像时&#xff0c;有多种不同的颜色模型&#xff0c;但最常见的是红、绿、蓝(RGB) 模型RGB 模型是一种加法颜色模型&#xff0c;其中原色 (在RGB模型中&#xff0c;原色是红色 R、绿色 G 和蓝色 B)混合在…

设计模式之享元模式

写在前面 本文看下一种结构型设计模式&#xff0c;享元模式。 1&#xff1a;介绍 1.1&#xff1a;什么时候使用享元模式 当程序需要大量的重复对象&#xff0c;并且这些大量的重复对象只有部分属性不相同&#xff0c;其他都是相同的时候&#xff0c;就可以考虑使用享元设计…

PMP-项目风险管理学习要点

文章目录 前言PMP-项目风险管理学习要点1. 风险的含义2. 风险敞口3. 单个项目风险 VS 整个项目风险4. 变异性风险5. 模糊性风险6. 项目风险的分类6.1. 已知风险与未知风险6.2. 内部风险与外部风险6.3. 商业风险与可保险风险7. 影响相关方的风险态度的因素8. 识别风险的几种方式…

【天工Godwork精品教程】天工3.1.7安装教程(附Godwork完整版下载地址)

本文讲解天工3.1.7安装过程(附Godwork完整版网盘下载地址)。 文章目录 一、天工3.1.7安装教程1. 安装GodWork-AT 3.1.72. 安装GodWork-AT 3.1.7补丁3. 安装GodWork-EOS-Setup-2017B-12314. 安装GodWork-EOS补丁5. 运行godwokr软件6. 生成ZC码7. 输入ZC码8. eos插件调用二、天…

Linux·从 URL 输入到页面展现到底发生什么?

打开浏览器从输入网址到网页呈现在大家面前&#xff0c;背后到底发生了什么&#xff1f;经历怎么样的一个过程&#xff1f;先给大家来张总体流程图&#xff0c;具体步骤请看下文分解&#xff01; 总体来说分为以下几个过程: DNS 解析:将域名解析成 IP 地址TCP 连接&#xff1a…

LINUX 查看机器配置

查看磁盘类型&#xff1a;lsblk -d -o name,rota 查看磁盘大小&#xff1a;lsblk -r| grep dis 查看磁盘详情&#xff1a;df -h 查看每个物理CPU内核个数&#xff1a;cat /proc/cpuinfo | grep process | sort | uniq | wc -l 查看cpu个数&#xff1a;cat /proc/cpuinfo | grep…

Vue中的侦听器:数据变化的秘密揭示

一、侦听器&#xff1a;vue中想监听数据的变化 &#x1f680;&#xff08;一&#xff09;侦听器watch 如何侦听到某个变量值改变呢&#xff1f;使用watch配置项&#x1f6a7;&#x1f6a7;&#x1f6a7;watch&#xff1a;可以侦听到data/computed属性值的改变。语法&#xff…

高级 Matplotlib:3D 图形和交互性

Matplotlib 是 Python 中最重要的数据可视化库之一。在之前的文章中&#xff0c;我们讨论了如何使用基础和中级功能来创建各种图形。在本文中&#xff0c;我们将深入研究 Matplotlib 的高级特性&#xff0c;特别是如何创建 3D 图形和交互式图形。 一、创建 3D 图形 Matplotli…

使用 Pytest 运行 yaml 文件来驱动 Appium 自动化测试

目录 前言&#xff1a; 获取 yaml 文件 YamlTest 测试类 Appium 初始化 Pytest 测试类 自定义 runtest demo&#xff1a; 自定义错误输出 Yaml 使用方式规则 前言&#xff1a; 使用Pytest来运行yaml文件来驱动Appium自动化测试是一种方便且灵活的方法。通过将测试数据…

为你精选5款体验极佳的原型设计工具!

在绘制原型图的过程中&#xff0c;使用一款的简单易操作的原型设计工具是非常重要的&#xff0c;本文精选了5款好用的原型工具与大家分享&#xff0c;一起来看看吧&#xff01; 1、即时设计 即时设计是国内很多设计师都在用的原型设计工具&#xff0c;同时它也是国产的原型设…