VUE动态获取浏览器宽高,动态获取元素宽高,动态设置元素的宽高或样式

本文介绍了在Vue中如何动态获取浏览器窗口及元素的宽高,并展示了动态设置元素宽高的方法。通过监听resize事件实现窗口尺寸变化时的响应式处理,使用$refs获取元素尺寸,并利用$nextTick确保在DOM渲染完成后获取正确值。同时,演示了如何动态设置元素样式以适应尺寸变化。
摘要由CSDN通过智能技术生成

VUE动态获取浏览器宽高,动态获取元素宽高,动态设置元素的宽高或样式

动态获取浏览器宽高

created(){
	window.addEventListener('resize', this.GetWindowInfo); //注册监听器
	this.GetWindowInfo() //页面创建时先调用一次
},
methods:{
  GetWindowInfo(){
	var width = window.innerWidth // 宽
	var height = window.innerHeight // 高
  }
},
destroyed(){
  window.removeEventListener('resize', this.GetWindowInfo)
}

动态获取元素宽高

在标签中定义ref属性,用this.$refs.自定义名称.clientHeight / clientWidth去获取。
但是this.$refs可能会出现undefined的问题,解决方法:

 - 写在method中,使用 this.$nextTick(() => {}) 等页面渲染好再调用,这样就可以了
并且此方法获取的宽高不包括border的值

代码:

// html
<div ref="container"></div>
// js
GetDomInfo() {
  this.$nextTick(() => {
    var domWidth = this.$refs.container.clientWidth // 宽
	var domHeight = this.$refs.container.clientHeight // 高
  })
}

动态设置元素的宽高或样式

<div :style="{width: width}"></div>
data() {
  return {
    width: ''
  }
},
setInfo() {
  this.width = width - domWidth + 'px'
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值