happy
happy
  • 发布:2024-03-25 11:31
  • 更新:2024-03-26 17:54
  • 阅读:259

uniappx的组件中如何获取DOM的长宽

分类:uni-app x

在uniappX中,创建的组件中,在组件中没有onReady生命周期,在mounted中通过
this.$refs["swiper"] as UniElement).getBoundingClientRect().width,获取到宽度为0 ,给他加一个setTimeout,延迟300ms就能获取到宽度,证明在mounted中,dom还没有渲染完成,请教如何在组建中获取dom的宽高。

2024-03-25 11:31 负责人:无 分享
已邀请:
JXWang

JXWang

可以试试这个

uni.createSelectorQuery().select(selector).boundingClientRect().exec((ret) => {  
          if (ret.length == 1) {  
            const nodeInfo = ret[0] as NodeInfo;  
            const nodeType = {  
              left: nodeInfo.left,  
              top: nodeInfo.top,  
              right: nodeInfo.right,  
              bottom: nodeInfo.bottom,  
              width: nodeInfo.width,  
              height: nodeInfo.height,  
            } as NodeInfoType;  
            this.rootNodeInfo = nodeType  
          }  
        })

要回复问题请先登录注册