vue3 获取元素高度不准的问题

目录
  • vue3 获取元素高度不准
  • 页面获取元素高度和$el问题

vue3 获取元素高度不准

html:

<transition name="slide-width">
    <a-col class="fixed-small" v-show="isShow" :style="{height: `${ztreeHeight}px`}">
         <div style="height: 500px; ">
             555
         </div>
    </a-col>
</transition>
<a-col class="auto-small-full" :class="{ 'auto-small': isShow }" ref="rightBox">
    <a-table
        :size="state.tableSize"
        :loading="state.loading"
        :columns="dynamicColumns"
        :data-source="state.dataSource"
        :scroll="{ x: 1800 }"
        :pagination="{
        current: state.current,
        pageSize: state.pageSize,
        total: state.total,
        size: 'middle',
        showTotal: total => `共 ${total} 条`,
    }"
        @change="handleTableChange"
    >
        <template #statusOther="{ text }">
            <a-tag :color="statusMap[text].status">
                {{ statusMap[text].text }}
            </a-tag>
        </template>
        <template #action="{ text, record }">
            <a :title="text" @click="detailFuns(record)">查看详情</a>
        </template>
    </a-table>
</a-col>
const rightBox = ref();
let ztreeHeight = ref<number>(0);
 
onMounted(() => {
    watch(
        () => state.dataSource,
        () => {
            nextTick(()=>{
               $(document).ready(()=>{
                   ztreeHeight.value = rightBox.value.$el.scrollHeight;
               })
            })
 
        },
    );
});

主要是动态数据请求回来之后获取元素的高度。

页面获取元素高度和$el问题

1.最近遇到一个需求就是vue中遇到 this.refs.elForm.offsetHeight,获取不到该高度

<el-form :model="addOrEditForm" class="el-form-dialog" label-width="120px" ref="elForm" >
</el-form>

2.然后通过了解才知道,该元素事elementui分装的元素,需要再获取的前提加一个$el(如果是html标签就不用加)

this.refs.elForm.$el.offsetHeight

就可以获取到其高度。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue获取dom元素注意事项

    mounted(){ setTimeout(()=>{ this.contentToggle(); },1000) }, methods:{ contentToggle(){ console.log(this.$refs.bodyFont.offsetHeight); } } vue想要获取dom元素的高,一般情况下我们都可以想到写在mounted函数里,即dom加载完再获取,但是结果并不如我们所想,又想到用一个 this.$nextTick(()=>{ //函数 }) 来获取,发现根本没用啊

  • vue获取元素宽、高、距离左边距离,右,上距离等还有XY坐标轴的方法

    this.$refs['通过设置ref获取到的dom元素'].getBoundingClientRect(); //示例: 获取元素距离顶部的距离 this.$refs.journalUpward.getBoundingClientRect().top 以上这篇vue获取元素宽.高.距离左边距离,右,上距离等还有XY坐标轴的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 解决vue项目获取dom元素宽高总是不准确问题

    dom元素内部内容是动态的,重置数据后直接获取宽高总是不准确: this.$refs.editor[0].offsetHeight; 原因:重置数据后获取dom元素宽高时,dom元素还未渲染完毕: 解决方法:利用Vue.nectTick(callback) this.$nextTick(() => { this.$refs.editor[0].offsetHeight; }) Vue.nectTick() 是在下次DOM更新循环结束之后执行延迟回调 补充知识:vue 获取 指定元素的高度宽度等(

  • vue第一次获取不到元素的解决方法记录

    前言 vue中第一次获取不到元素的解决办法,是否经常第一次点击弹窗按钮,获取弹窗中的元素.打开弹窗获取元素为空,要第二次才能获取. 一.更新dom后获取 this.$nextTick(callback) methods: { play() { //获取元素 console.log($('#video')); this.$nextTick(function() { //获取元素 console.log($('#video')); }); } } 二.通过定时器获取 setTimeOut(fn, 0

  • vue3 获取元素高度不准的问题

    目录 vue3 获取元素高度不准 页面获取元素高度和$el问题 vue3 获取元素高度不准 html: <transition name="slide-width">     <a-col class="fixed-small" v-show="isShow" :style="{height: `${ztreeHeight}px`}">          <div style="heig

  • jQuery获取页面及个元素高度、宽度的总结——超实用

    下面把jQuery获取页面及个元素高度.宽度的方法汇总,分享给大家. 获取浏览器显示区域(可视区域)的高度 : 复制代码 代码如下: $(window).height(); 获取浏览器显示区域(可视区域)的宽度 : 复制代码 代码如下: $(window).width(); 获取页面的文档高度 复制代码 代码如下: $(document).height(); 获取页面的文档宽度 : 复制代码 代码如下: $(document).width(); 浏览器当前窗口文档body的高度: 复制代码 代码

  • js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法

    如下所示: screen.width screen.height screen.availHeight //获取去除状态栏后的屏幕高度 screen.availWidth //获取去除状态栏后的屏幕高度 一.通过浏览器获得屏幕的尺寸 二.获取浏览器窗口内容的尺寸 //高度 window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight //宽度 window.innerWidth

  • 一个JavaScript获取元素当前高度的实例

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-获取元素当前高度</title> <style> #date{width:90%;height:25%;padding:10px;back

  • js获取页面及个元素高度、宽度的代码

    网页可见区域宽: document.body.clientWidth; 网页可见区域高: document.body.clientHeight; 网页可见区域宽: document.body.offsetWidth (包括边线和滚动条的宽); 网页可见区域高: document.body.offsetHeight (包括边线的宽); 网页正文全文宽: document.body.scrollWidth; 网页正文全文高: document.body.scrollHeight; 网页被卷去的高(f

  • vue3如何使用ref获取元素

    目录 vue3使用ref获取元素 vue3中ref的理解 1.什么是ref? 2.ref本质 3.ref注意点 4.ref获取元素 vue3使用ref获取元素 在vue2.x中,可以通过给元素添加ref='xxx'属性,然后在代码中通过this.$refs.xxx获取到对应的元素 然而在vue3中时没有$refs这个东西的,因此vue3中通过ref属性获取元素就不能按照vue2的方式来获取 vue3需要借助生命周期方法,原因很简单,在setup执行时,template中的元素还没挂载到页面上,所

  • vue3中通过ref获取元素节点的实现

    目录 通过ref获取元素节点 获取ref元素的几种方式小结 1. 原生js获取dom元素 2. ref获取单个dom元素 3. ref获取v-for循环中的dom元素 4. 在swiper中获取swiper的dom元素 通过ref获取元素节点 ref 在vue2中可以说简化js原生的document.getElementById("#id")操作 .当然在vue3中也一样 首先,给你想获取到的元素一个ref 属性 然后,再将这个ref对象创建出来,就可以访问到他的值 但是.这样在set

  • 一文详解Vue3中使用ref获取元素节点

    目录 静态绑定 onMounted nextTick watchEffect watch v-for中使用 动态绑定 ref设置函数 通过getCurrentInstance方法 获取vue实例 前言: 本文介绍在vue3的setup中使用composition API获取元素节点的几种方法: 静态绑定 仅仅需要申明一个ref的引用,用来保存元素,在template中,不必bind引用(:ref="domRef"),只需要声明一个同名的ref属性(ref="domRef&qu

  • 一篇文章搞懂Vue3中如何使用ref获取元素节点

    目录 前言 1.回顾 Vue2 中的 ref 2.Vue3 中 ref 访问元素 3.v-for 中使用 ref 4.ref 绑定函数 5.组件上使用 ref 总结 前言 虽然在 Vue 中不提倡我们直接操作 DOM,毕竟 Vue 的理念是以数据驱动视图.但是在实际情况中,我们有很多需求都是需要直接操作 DOM 节点的,这个时候 Vue 提供了一种方式让我们可以获取 DOM 节点:ref 属性.ref 属性是 Vue2 和 Vue3 中都有的,但是使用方式却不大一样,这也导致了很多从 Vue2

  • js获取元素到文档区域document的(横向、纵向)坐标的两种方法

    获取页面中元素到文档区域document的横向.纵向坐标的两种方法及其比较 在js控制元素运动的过程中,对于页面元素坐标位置的获取是经常用到的,这里主要总结下两种方法: 一:通过叠加元素对象和它的offsetParent(如果存在)的offsetLeft/offsetTop属性来实现 在阅读javascript高级程序设计第三版DOM部分时,了解到要获取某个元素在页面上的偏移量,需要将这个元素的offsetLeft和offsetTop与其offsetParent的相同属性相加,一直循环直至根元素

随机推荐