- 26
- 0
为何在vue动画的 beforeEnter中,无法拿到元素的宽高等具体信息
相关代码
<transition
@before-enter="beforeEnter"
@enter="enter"
@after-enter="afterEnter"
@enter-cancelled="enterCancelled"
@before-leave="beforeLeave"
@leave="leave"
@after-leave="afterLeave"
@leave-cancelled="leaveCancelled"
>
<!-- :css="false" -->
<div
v-if="isItemShow"
>当时明月在,<br /> 曾照彩云归</div>
</transition>
// js
beforeEnter: function (el) {
// 1
console.log('beforeEnter', el)
console.dir(el)
const elInfo= el.getBoundingClientRect()
},
// 结果 getBoundingClientRect
bottom: 0
height: 0
left: 0
right: 0
top: 0
width: 0
x: 0
y: 0
// 打印的元素信息 却有具体的高度
nodeName: "DIV"
nodeType: 1
nodeValue: null
nonce: ""
offsetHeight: 42
offsetLeft: 36
为何会出现这样的情况
我现在是想在 beforeEnter 中拿到元素的高,可不管使用 offsetHeight,getBoundingClientRect, clientHeight 获取的高度都是 0, 但是 打印元素的具体信息,确是有相关信息的
0
打赏
收藏
点击回答
您的回答被采纳后将获得:提问者悬赏的 10 元积分
- 共 0 条
- 全部回答
-
:+酷::b 普通会员 1楼
在 Vue 中,当组件在进入或离开视图时,
beforeEnter事件会被触发。在这个事件中,你可以访问到组件的状态,包括el(元素)的width和height属性。如果你无法在
beforeEnter事件中获取到el的width和height属性,那么可能是因为你在beforeEnter事件中访问了一个不存在的属性,或者你尝试访问的属性已经被移除。你可以使用
get方法来检查el是否存在,或者使用removeAttribute方法来移除一个不存在的属性。例如,如果你有一个使用
v-bind绑定的属性width和height,你可以这样访问它们:```javascript
```
如果你在
beforeEnter事件中尝试访问这个属性,你可以这样做:javascript this.$nextTick(() => { console.log(this.$el.width, this.$el.height); });如果你的
width和height属性已经被移除,你可以使用v-if或v-show来控制组件的显示和隐藏。```javascript
```
或者
```javascript
```
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
