首页 > 其他分享 >vue3 通过ref获取元素离顶部的距离

vue3 通过ref获取元素离顶部的距离

时间:2024-06-11 09:03:57浏览次数:19  
标签:el 顶部 top vm value vue3 mounted ref

vue3版本 ^3.2.45

  • [ref].value.$el.getBoundingClientRect().top
    • 通过ref获取元素。
    • 使用 getBoundingClientRect().top 获取离顶部的距离    

Vue无法读取HTMLCollection列表的length问题解决方案

实践项目时候发现一个问题

在mounted阶段,获取Element对象,console.log()可以读取出列表,而却无法读出它的length

以下出自官方文档

mounted

类型Function

详细

el 被新创建的 vm.$el 替换,并挂载到实例上去之后调用该钩子。

如果 root 实例挂载了一个文档内元素,当 mounted 被调用时 vm.$el 也在文档内。

注意 mounted 不会承诺所有的子组件也都一起被挂载。

如果你希望等到整个视图都渲染完毕,可以用 vm.$nextTick 替换掉 mounted

<a-menu
                ref="menuRef"
                v-model:selectedKeys="doublerowSelectedKey"
                :theme="sideTheme"
                class="snowy-doublerow-layout-menu"
            >

 

const menuRef = ref()
                    //等到整个视图都渲染完毕,可以用 nextTick 替换掉 mounted
                    nextTick(() => {
                        style.value = `top:${menuRef.value.$el.getElementsByClassName('ant-menu-item-selected')[0].offsetTop}px` //'top:400px;'
                        //alert(menuRef.value.$el.getElementsByClassName('ant-menu-item-selected')[0].offsetTop)
                    })

 

标签:el,顶部,top,vm,value,vue3,mounted,ref
From: https://www.cnblogs.com/Fooo/p/18241442

相关文章

  • AttributeError: ‘ChatGLMModel‘ object has no attribute ‘prefix_encoder‘
    AttributeError:‘ChatGLMModel‘objecthasnoattribute‘prefix_encoder‘:全面解析问题概述当您使用ChatGLM模型或相关库时遇到AttributeError:‘ChatGLMModel‘objecthasnoattribute‘prefix_encoder‘错误时,这意味着ChatGLMModel类中不存在prefix_encod......
  • 如何在Vue3中使用事件总线实现跨组件通信?
    在复杂的前端开发中,组件之间的通信是必不可少的环节。而在Vue3中,事件总线(EventBus)是一种方便且高效的实现跨组件通信的方法。本文将详细介绍如何在Vue3项目中使用事件总线来实现跨组件通信,并提供实际示例代码,帮助你更好地掌握这一技能。什么是事件总线?事件总线(EventBus)......
  • 如何在Vue3中使用动画库实现元素过渡效果?
    在如今充满动态与交互的前端开发世界里,现代网页应用的用户体验越来越依赖于丰富的动画效果。Vue3作为一个强大且灵活的前端框架,支持各种动画库,比如GSAP、Anime.js等,它们能够让动画实现变得简单且强大。本文将通过实例,为大家介绍如何在Vue3中使用动画库实现元素过渡效果。一......
  • [TinyRenderer] Preface
    本系列文章是本人学习TinyRenderer项目,并构建自己的软光栅系统器的跟踪文章,主要记录了一些开发与心得。项目介绍TinyRendererTinyRendererisasoftrasterrendererbasedonCPU.ItsdesigntargetistorecurrenttheTinyRenderer,afamousprojectaboutsoftrendere......
  • Vue2基础知识:v-model在组件传值中的使用,表单组件如何封装,如何用v-model简化父传子,子传
    要想要了解v-model在组件传值中如何使用首先得先了解表单组件如何封装数据在父组件那里,表单结构在子组件那里。1.表单组件如何封装1.父传子:数据应该是父组件props传递过来的,v-model拆解绑定数据。(为什么说是拆解呢?因为不可以直接v-model绑定,子组件只能改变自己的值,不能改变......
  • Vue3笔记
    本节代码可以从gitclonehttps://gitee.com/fullstacker1024/vue3-component-demo.git下载其中项目实例todo1、前言1)Vue3的优势(1)更容易维护①组合式API②更好的TypeScript支持(2)更小的体积①良好的TreeShaking②按需引入(3)更快的速度①重写diff算法②模板编译优化......
  • 基于鸿蒙操作———制作健康App(实现首页UI设计,顶部搜索)
    前言当前部分主要是完成首页的UI设计,学习并掌握Tabs组件的用法,可以完成页面内视图快速切换,包含TabBar和TabContent两部分实现效果项目代码Tabs组件代码import{CommonConstants}from'../common/constants/CommonConstants'@Entry@ComponentstructIndex{@S......
  • Vue3中的常见组件通信之`$refs`、`$parent`
    Vue3中的常见组件通信之$refs、$parent概述​在vue3中常见的组件通信有props、mitt、v-model、refs、......
  • CF1552G A Serious Referee 题解
    题目链接点击打开链接题目解法感觉很神奇的题首先把序列当成排列做首先发现只要当成\(01\)序列做就是对的为什么?你假设有数\(x<y\),你把\(\lex\)的数设成\(0\),\(>x\)且\(\ley\)的数设成\(1\),\(>y\)的数设成\(2\),然后做题目中的排序操作,如果最终序列形成逆序......
  • vue3 setup 语法糖!
    前言Vue.js是一款流行的JavaScript框架,用于构建用户界面。它提供了一种简洁的方式来创建可维护和可测试的前端应用程序。Vue.js的核心库只关注视图层,易于上手,同时与其他库或现有项目整合也非常方便。Vue也完全能够为复杂的单页应用提供驱动。在Vue3中,引入了<script......