广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何在Vue中获取DOM元素的实际宽高
  • 726
分享到

如何在Vue中获取DOM元素的实际宽高

2024-04-02 19:04:59 726人浏览 薄情痞子
摘要

目录前言一、获取元素二、获取元素宽高补充:Vue项目获取dom元素宽高总是不准确总结前言 最近使用 D3.js 开发可视化图表,因为移动端做了 rem 适配,所以需要动态计算获取图表

前言

最近使用 D3.js 开发可视化图表,因为移动端做了 rem 适配,所以需要动态计算获取图表容器的宽高,其中涉及到一些原生DOM api的使用,避免遗忘这里总结一下。

Vue && DOM

一、获取元素

Vue 中可以使用 ref 来获取一个真实的 DOM 元素。

为了保险起见,所有的 DOM 操作建议都放在 $nextTick() 方法中。

<template>
  <div class="box" ref="wrap"></div>
</template>
<script>
export default {
  mounted() {
    // 获取 DOM 元素
    this.$nextTick(()=>{
      let $ele = this.$refs.wrap
    })
  },
}
</script>
<style scoped>
  .box {
    width: 100%;
    height: 200px;
    background-color: pink;
  }
</style>

二、获取元素宽高

使用 offsetWidthoffsetHeight 方法,返回 Number 类型的值,如:52

let $ele = this.$refs.wrap
// 宽
let width = $ele.offsetWidth
// 高
let height = $ele.offsetHeight

使用 window 全局对象中的 getComputedStyle API,返回 String 类型的值,包含px单位,如: '100px'

let $ele = this.$refs.wrap
// 宽
let width = window.getComputedStyle($ele).width
// 高
let height = window.getComputedStyle($ele).height

补充:vue项目获取dom元素宽高总是不准确

dom元素内部内容是动态的,重置数据后直接获取宽高总是不准确:

this.$refs.editor[0].offsetHeight;

原因:重置数据后获取dom元素宽高时,dom元素还未渲染完毕;

解决方法:利用Vue.nectTick(callback)

this.$nextTick(() => {
  this.$refs.editor[0].offsetHeight;
}) 

Vue.nectTick() 是在下次DOM更新循环结束之后执行延迟回调

总结

到此这篇关于如何在Vue中获取DOM元素实际宽高的文章就介绍到这了,更多相关Vue获取DOM元素实际宽高内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何在Vue中获取DOM元素的实际宽高

本文链接: https://www.lsjlt.com/news/168251.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Vue中获取DOM元素的实际宽高
    目录前言一、获取元素二、获取元素宽高补充:vue项目获取dom元素宽高总是不准确总结前言 最近使用 D3.js 开发可视化图表,因为移动端做了 rem 适配,所以需要动态计算获取图表...
    99+
    2022-11-13
  • Vue中如何获取DOM元素
    今天小编给大家分享一下Vue中如何获取DOM元素的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。dom是一种文档对象模型,同时...
    99+
    2023-07-04
  • 使用display:none时隐藏DOM元素无法获取实际宽高的解决方法
    案例说明 当DOM元素被添加上display:none;的样式时,这个元素和它的子元素无法获取到实际的宽高。如图,我设置了一个父元素和一个子元素,并且通过一个按钮切换父元素是否带有d...
    99+
    2022-11-13
  • 如何在HTML中获取DOM元素
    如何在HTML中获取DOM元素?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.利用querySelectorAll()方法   返回文档中匹配指定...
    99+
    2023-06-14
  • vue如何获取元素的高
    在vue中获取元素高的方法:1.新建vue.js项目;2.添加div标签,设置ref属性;3.执行代码获取元素的高;具体步骤如下:首先,在vue-cli中创建一个vue.js项目;vue create project-namevue.js项...
    99+
    2022-10-03
  • python 如何获取元素在array中的下标
    用numpy创建一个array列表 使用numpy的where方法寻找该数组下的某个值 返回数据是对应的下标 该下标被包裹在一个tuple和一个list中。我们可以用a[0][0]轻松取出来: 补充:...
    99+
    2022-06-02
    python 获取元素下标 array的下标
  • js如何解决无法获取隐藏元素宽度和高度的问题
    这篇文章给大家分享的是有关js如何解决无法获取隐藏元素宽度和高度的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在实际开发中会遇到确实需要获取隐藏元素的宽高,这儿所说的隐藏元...
    99+
    2022-10-19
  • 在javascript中如何快速获取数组指定位置的元素
    目录前言数组的 at() 方法前言 在 JavaScript 中如果我们需要获取一个数组指定位置的元素,通常情况下,我们一般采用以下方法: 1.通过下标直接获取指定元素:arr[in...
    99+
    2023-05-17
    js获取数组指定位置的元素 js获取数组元素
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作