SuperPony
SuperPony
  • 发布:2021-03-05 08:53
  • 更新:2021-03-16 10:41
  • 阅读:1144

【报Bug】image 组件 mode 设置为 widthFix 时,无法获取实际的节点高度

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 10

浏览器平台: Chrome

浏览器版本: 88.0.4324.182

项目创建方式: CLI

CLI版本号: 4.5.7

操作步骤:
  1. 使用图片组件,mode 设置为 widthFix;
  2. 在任意位置获取该节点信息,高度返回一直是 240,与实际高度不符合。

预期结果:
  1. 使用图片组件,mode 设置为 widthFix;
  2. 获取该节点信息,返回的高度信息因该与实际高度一致。

实际结果:

获取该节点信息,返回的高度一直为 240,与实际高度不符合。

bug描述:

  1. 使用图片组件,mode 设置为 widthFix;
  2. 在任意位置获取该节点信息,高度返回一直是 240,与实际高度不符合。
<template>  
  <image  
    :src="require('./demo.jpg')"  
    mode="widthFix"  
    class="image"  
    lazy-load  
  ></image>  
</template>  
  
<script>  
export default {  
  mounted() {  
    uni  
      .createSelectorQuery()  
      .select(".image")  
      .boundingClientRect((data) => {  
        console.log(data);  
      })  
      .exec();  
  },  
};  
</script>
2021-03-05 08:53 负责人:无 分享
已邀请:
DCloud_UNI_GSQ

DCloud_UNI_GSQ

时机,注意时机

  • SuperPony (作者)

    目前我们这边测试,mode 设置为其他的都可以获取到正确的节点信息。唯独 widthFix 不管什么样的图片,放到哪里执行,一直都是返回 height:240;能否说明一下您说的时机,是指哪里呢?


    2021-03-05 16:25

  • SuperPony (作者)

    我反馈的这个问题, 在2020 年4月份,已经有开发者反馈了,但是并没有得到反馈。 附上那位开发者反馈的帖子:https://ask.dcloud.net.cn/question/92677


    2021-03-05 16:38

  • DCloud_UNI_GSQ

    回复 SuperPony: 实际指的是加载时机,你在图像加载以前获取高度,获取的是错误的高度


    2021-03-08 11:42

DCloud_UNI_GSQ

DCloud_UNI_GSQ

试试在 image 组件的 load 事件后

  • SuperPony (作者)

    感谢回复


    2021-03-09 09:45

  • jjhjiyu

    这个load事件取到的高度也不对呀,是原图的宽高,想获取这个最后的高度214px怎么获取呢,我现在有个情况是要给swiper动态赋值高度,所有图片都是widthFix,怎么确认所有图片都加载完了呢?


    2021-04-01 22:43

  • 深海智行

    回复 jjhjiyu: 试了试,可以了


    2021-04-06 14:35

  • jjhjiyu

    回复 深海智行: 什么可以了,怎么确认widthFix图片全都加载完了,而且load事件取到的是原图宽高,如果要取图片真实高度,还得再取一次节点信息查一次


    2021-04-07 01:35

  • 深海智行

    回复 jjhjiyu: 对的


    2021-04-07 11:25

梦尋Junjie

梦尋Junjie - 原来她有男朋友

我遇到的问题是 使用动画, 在动画缩放的时候 图片就加载出来了,但是动画完成之后 图片的尺寸是失真的,因为动画开始的第一贞 图片就已经设置好了高度, 但是 动画完成后并没有更新图片高度,

该问题目前已经被锁定, 无法添加新回复