获取页面 img标签的高度 (直接获取,我怎么打印出来是零呢)

今天发现了一个有趣的现象,我拿到后端回来的数据之后 要操作 页面中的图片的时候
获取 img 标签 给我高度打印出来个 零

<div class="imgList">
        <img src="./imgs/banner_1.png" alt="picture" class="lazy">
        <img src="./imgs/banner_2.png" alt="picture" class="lazy">
        <img src="./imgs/banner_3.png" alt="picture" class="lazy">
        <img src="./imgs/banner_4.png" alt="picture" class="lazy">
        <img src="./imgs/banner_5.png" alt="picture" class="lazy">
</div>
var imgs = document.querySelectorAll('.lazy');
        
for(var i = 0; i < imgs.length; i++ ){
     console.log(imgs[i].height)
 }

给我打印出来了 五个 0
在这里插入图片描述
哎呀 我这脾气就上来了 什么鬼
好歹我也是几年开发经验了 (说实话 还不到一年的菜鸟 哈哈)

其实吧 当出来这个问题的时候 我已经猜测到 一二了

就是跟浏览器渲染可能有关系 虽然 img 标签 渲染出来 但是图片却还没有出来 他要去寻找图片的路径然后加载出来 但是这个加载时间是什么时候 我们却不知道

但是仔细回想了一下 我们真的不知道图片加载好的 时间吗
之前学习canvas 的时候 学到了一个 小知识点

废话不多说直接上代码

我们通过创建 一个 Image 然后i通过他的onload 函数 就知道图片渲染好了 这样我们就可以去获取页面的图片元素的高度了

var img = new Image();

img.src = "./imgs/loading.gif";

img.onload = function() {
    for (var i = 0; i < imgs.length; i++) {
        console.log(imgs[i].height)
    }
}

事实上 我们也确实获取到了 img标签加载好 图片之后的高度了

在这里插入图片描述
这样 就获取到了 哎 还真是 活到老学到老
关注我持续 更新前端知识

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yunchong_zhao

帮到你了,请作者喝杯矿泉水可好

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值