您好,登錄后才能下訂單哦!
這篇“vue.js動態設置VueComponent高度遇到問題如何解決”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“vue.js動態設置VueComponent高度遇到問題如何解決”文章吧。
<div v-for="data in list"> <div ref="abc">{{data.id}}</div> </div>
mounted(){ console.log(this.$refs.abc[0].clientHeight);//獲取第一個div元素的高度 this.$refs.abc[0].style.height = 100 +'px';//動態設置HTML元素高度 }
注意:
1.此處用到v-for循環,this.$refs.abc返回的是個HTMLElement數組
2.this.$refs在DOM元素掛載完成后才可以調用
3.不可以通過this.$refs.abc[0].clientHeight = 100 +'px'設置高度,因為clientHeight屬性是只讀的,不允許修改。
4.注意加'px'單位
<Row v-for="(data,idx) in list" :key="idx"> <Col ref="leftCol"> <p>{{data.id}}</p> </Col> <Col ref="rightCol"> <p>{{data.id}}</p> </Col> </Row> mounted(){ for(let i = 0; i < this.list.length; i++){ console.log(this.$refs.leftCol[i].$el.clientHeight);//獲取左邊列元素的高度 console.log(this.$refs.rightCol[i].$el.clientHeight);//獲取右邊列元素的高度 this.$refs.leftCol[0].$el.style.height = 100 +'px';//動態設置VueComponent元素高度 }; }
注意:
this.$refs.leftCol返回的是個VueComponent數組,this.$refs.leftCol[i]返回的是個VueComponent元素,而不是HTMLElement
var jqueryObject = $("#a"); jqueryObject instanceof jQuery; //jqueryObject 是jQuery對象 var domObject = document.querySelector("#a"); domObject instanceof jQuery; //domObject不是jQuery對象 domObject instanceof HTMLElement; //domObject是DOM對象
<template> <el-row> <el-col :span="24"> <el-row ref="headerMenu" class="header-menu"> <el-col :span="24"> <el-menu router mode="horizontal"> <el-menu-item index="1" route="/global-overview">全局概覽</el-menu-item> <el-menu-item index="2" route="/e-commerce-business">電商業務</el-menu-item> <el-menu-item index="3" route="/douniao-business">抖鳥業務</el-menu-item> <el-menu-item index="4" route="/administrative-business">行政業務</el-menu-item> <el-menu-item index="5" route="/admin">管理員入口</el-menu-item> </el-menu> </el-col> </el-row> <el-row ref="routerView"> <router-view></router-view> </el-row> </el-col> </el-row> </template>
<script> export default { name: "home-page", mounted() { /** * when the component is hung, dynamically obtain the height of the header menu, * and set this value to router view as margin top */ this.$refs.routerView.$el["style"].marginTop = `${this.$refs.headerMenu.$el["offsetHeight"]}px`; } } </script>
<style scoped> .header-menu { position: fixed; top: 0; width: 100%; z-index: 999; } </style>
以上就是關于“vue.js動態設置VueComponent高度遇到問題如何解決”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。