最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何在Vue中獲取DOM元素的實(shí)際寬高

 更新時間:2022年09月23日 09:32:10   作者:天問_  
使用vue的時候,想要獲得一個指定的元素的高度時,下面這篇文章主要給大家介紹了關(guān)于如何在Vue中獲取DOM元素的實(shí)際寬高的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

前言

最近使用 D3.js 開發(fā)可視化圖表,因?yàn)橐苿佣俗隽?rem 適配,所以需要動態(tài)計算獲取圖表容器的寬高,其中涉及到一些原生DOM API的使用,避免遺忘這里總結(jié)一下。

Vue && DOM

一、獲取元素

Vue 中可以使用 ref 來獲取一個真實(shí)的 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>

二、獲取元素寬高

使用 offsetWidth 、 offsetHeight 方法,返回 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

補(bǔ)充:vue項(xiàng)目獲取dom元素寬高總是不準(zhǔn)確

dom元素內(nèi)部內(nèi)容是動態(tài)的,重置數(shù)據(jù)后直接獲取寬高總是不準(zhǔn)確:

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

原因:重置數(shù)據(jù)后獲取dom元素寬高時,dom元素還未渲染完畢;

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

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

Vue.nectTick() 是在下次DOM更新循環(huán)結(jié)束之后執(zhí)行延遲回調(diào)

總結(jié)

到此這篇關(guān)于如何在Vue中獲取DOM元素實(shí)際寬高的文章就介紹到這了,更多相關(guān)Vue獲取DOM元素實(shí)際寬高內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

门头沟区| 东乡县| 修水县| 临潭县| 广饶县| 上栗县| 渝北区| 宁德市| 黄浦区| 景德镇市| 繁昌县| 玉环县| 盐山县| 泽库县| 特克斯县| 都兰县| 湖南省| 大石桥市| 景宁| 和林格尔县| 报价| 来凤县| 农安县| 临漳县| 修水县| 崇明县| 庆安县| 阿克苏市| 苏州市| 甘洛县| 云南省| 合水县| 清水河县| 连平县| 京山县| 双流县| 高邮市| 于田县| 桂阳县| 荣成市| 东乡族自治县|