javascript - 怎么用原生js获取img高度
阿神
阿神 2017-04-10 16:40:08
0
5
349

如题
怎么用原生js获取img高度,img没有设置height属性

这种方式offsetHeight可以获取高度

如果是这么写 offsetHeight clientHeight都不行

最新发现,就chrome不行。Firefox,IE的 offsetHeight,clientHeight,height都可以。chrome版本为47.0.2526.73 m,但是用jq img.height()却可以喔。

以下方法是不行的(就chrome不行,IE Firefox都可以)

 

以下方法是是可以的,就加了onload

 

我会之后再在别的地方试试看是否是浏览器坏了

阿神
阿神

闭关修行中......

모든 응답 (5)
阿神
var img = document.getElementById('imgId'); imgHeight = img.height; // img元素本来就有height属性

你可以遍历一下元素属性:

var img = document.getElementById('imgId'); for(var x in img){ console.log(x+":"+img[x]); }

在chrome里输出:

width:24 // 图片实际渲染的宽 height:24 naturalWidth:64 // 图片原来的宽 naturalHeight:64
    Peter_Zhu
    var img = document.getElementById('imgId'); imgHeight = img.offsetHeight;
      PHPzhong

      因为不在onload执行的话,s这段script会在image下载到浏览器之前执行,此时img元素还只是一个空节点。因此要等到图片被渲染出来之后计算尺寸

        黄舟

        是因为没加onload的话,有时候图片还没加载完成,自然js就无法获取到它的高度。

          大家讲道理

          也不知道你的为啥不行,不行就贴代码。

           

          图片设置高度的话会取到设置的,没设置的话是原始高度300px

          我猜你是js写在图片前边了吧?

          ------补充你评论的问题----

           

          这样,也是可以正常获取到高度的,图片信息见下图:

          ---补充--
          回复评论失败,好像是bug。
          之前疏忽没加onload,不加的话表示页面加载到js就执行js,但此时页面的一些外部元素比如图片,CSS可能没加载完成,所以当然是取不到值的。

            최신 다운로드
            더>
            웹 효과
            웹사이트 소스 코드
            웹사이트 자료
            프론트엔드 템플릿
            회사 소개 부인 성명 Sitemap
            PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!