javascript - jq获取页面元素的高度与实际不符合(无法获取图片高度,有时候可以,有时候不行),急急急!!!!!
大家讲道理
大家讲道理 2017-04-11 12:28:33
[JavaScript讨论组]

元素里面有张图片,开始以为是图片没加载出来导致的,我再图片那加了个onload事件也是不行,求问为什么?

  • 家政服务

  • 医疗保健

  • 饮食服务

  • 生活照料

  • 康复护理

  • 心里疏导

css

.bd ul{ width:100%;  float:left; padding-top:.1rem;  }
.bd li{ width:30%; height: 100%; float:left; text-align:center; margin: .1rem;}
.bd li p{font-size: .28rem;}
.bd li a{display: inline-block; -webkit-tap-highlight-color:rgba(0, 0, 0, 0); /* 取消链接高亮 */ }
.bd li img{ width:100%;}

js

var a = $('.bd ul li a').height();
大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(7)
迷茫

js 获取 a的高度的时候, 图片还没有加载出来 ,拿不到高 跟 js的顺序有关。

PHP中文网

图片css属性呢?是不是有position:absolute;或类似使图片不占p空间的东西。

PHP中文网

Element.clientWidth可以获取到元素的宽度
该属性值会被四舍五入为一个整数。如果你需要一个小数值,可使用 element.getBoundingClientRect()。
语法
var intElemClientWidth = element.clientWidth;
来自
https://developer.mozilla.org...

高洛峰

$('.bd ul li a').height()这是a标签的高度,试试$('.bd ul li img').height();

阿神

把a的属性设置为block吧,图片属于内联元素,a也属于内联元素。当内联元素在内联元素里面时,内部的内联元素就默认是一个字体的高度,我想21px是你的line-height的高度吧

PHP中文网
$('img').each(function(index){
  var $this = $(this);
  var src = $this.attr('src');
  var img = new Image()
  img.onload = function(){
    console.log(this.src, this.width);
  }
  img.src = src;
});
伊谢尔伦

经过一轮百度之后得到:

function imgLoad(img, callback) {
            var timer = setInterval(function() {
                if (img.complete) {
                    callback(img)
                    clearInterval(timer)
                }
            }, 50)
        }
        imgLoad(img1, function() {
            p1.innerHTML('加载完毕')
        })
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号