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

如何在Vue中獲取DOM元素的實際寬高

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

前言

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

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元素內(nèi)部內(nèi)容是動態(tài)的,重置數(shù)據(jù)后直接獲取寬高總是不準確:

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元素實際寬高的文章就介紹到這了,更多相關(guān)Vue獲取DOM元素實際寬高內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論

沂水县| 黔西县| 原阳县| 丰宁| 石屏县| 榆林市| 肥东县| 苍梧县| 米林县| 兴城市| 拉孜县| 宁远县| 加查县| 玉屏| 辽阳县| 剑阁县| 博白县| 安顺市| 玉林市| 仪征市| 五原县| 苏尼特左旗| 友谊县| 洛川县| 临泽县| 达州市| 吕梁市| 茂名市| 温州市| 禄丰县| 吴桥县| 旺苍县| 依兰县| 鲁山县| 长葛市| 屏东市| 麟游县| 航空| 雅安市| 珲春市| 礼泉县|