vue.js:使用自定义指令监听元素尺寸变化(宽度、高度)

简介: vue.js:使用自定义指令监听元素尺寸变化(宽度、高度)

vue 自定义指令 文档: https://cn.vuejs.org/v2/guide/custom-directive.html

定义指令

import Vue from 'vue';
// 自动注册到全局
Vue.directive('resize', {
  bind(el, binding) {
    // el为绑定的元素,binding为绑定给指令的对象
    console.log(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 });
      }
      width = style.width;
      height = style.height;
    }
    el.__vueSetInterval__ = setInterval(isReize, 300);
  },
  unbind(el) {
    console.log(el, '解绑');
    clearInterval(el.__vueSetInterval__);
  }
});

使用

// src/main.js
// 引入指令
import '@/directives/resize.js';
div v-resize="handleResize"></div>
handleResize({ width, height }) {
  console.log('handleResize', width, height);
}

参考

vue使用自定义指令监听元素宽、高变化

相关文章
|
25天前
|
JavaScript 前端开发 开发者
前端技术分享:Vue.js 中的自定义指令
【10月更文挑战第1天】前端技术分享:Vue.js 中的自定义指令
55 5
|
2月前
|
JavaScript API
vue使用hook:声明周期来监听子组件的声明周期
本文介绍了如何在Vue中使用生命周期钩子来监听子组件的生命周期事件,包括在子组件内部监听和在父组件中监听子组件的生命周期钩子。
42 0
|
3月前
|
JavaScript 开发者
[译] 监听第三方 Vue 组件的生命周期钩子
[译] 监听第三方 Vue 组件的生命周期钩子
|
2月前
|
JavaScript
在 Vue.js 中使用 watch 来监听对象属性的变化
在 Vue.js 中使用 watch 来监听对象属性的变化
|
6天前
|
JavaScript 索引
vue 在 v-for 时给每项元素绑定事件
在 Vue 中使用 v-for 渲染列表时,可以通过给每项元素绑定事件来实现交互功能。通常使用 `@click` 等事件修饰符,结合方法或内联表达式来处理事件。例如:`&lt;li v-for=&quot;item in items&quot; @click=&quot;handleClick(item)&quot;&gt;{{ item }}&lt;/li&gt;`。
|
10天前
|
JavaScript 搜索推荐 UED
vue的自定义指令
【10月更文挑战第14天】Vue 自定义指令为我们提供了一种强大的工具,使我们能够更灵活地控制和扩展 Vue 应用的行为。通过合理地使用自定义指令,可以提高开发效率,增强应用的功能和用户体验。
|
23天前
|
缓存 JavaScript
|
23天前
|
JavaScript
vue3,使用watch监听props中的数据
【10月更文挑战第3天】
666 2
|
10天前
|
JavaScript UED
在 Vue 中使用自定义指令
【10月更文挑战第14天】通过合理地使用自定义指令,可以为 Vue 应用带来更多的灵活性和扩展性,提高开发效率和用户体验。
|
13天前
|
JavaScript API
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
深入解析JS中的visibilitychange事件:监听浏览器标签间切换的利器
32 0