赞
踩
1、使用element-resize-detector插件
2、使用自定义指令
npm install element-resize-detector
<template> <transition> <div v-resize="DomResize"> </div> </transition> </template> <script> export default { directives: { resize: { // 指令的名称 bind(el, binding) { // el为绑定的元素,binding为绑定给指令的对象 // console.log(el, '绑定', binding) let width = '' let height = '' function isResize() { 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(isResize, 300) }, unbind(el) { // console.log(el, '解绑') clearInterval(el.__vueSetInterval__) } } }, methods:{ DomResize(data) { // const { width, height } = data // console.log('width:', width, 'height:', height, ' dom尺寸方式改变') } } } </script>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。