为了账号安全,请及时绑定邮箱和手机立即绑定

如何获取一个动态添加的img的高度?

如何获取一个动态添加的img的高度?

码农2号 2018-04-16 17:13:44
此处为代码:<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>碎裂轮播图</title>    <style>        *{            margin: 0px;            padding: 0;        }        li{            list-style: none;        }        .clearfix:after {           content: " ";           display: block;           clear: both;           height: 0;       }               .clearfix {           zoom: 1;       }       .fl{           float: left;       }        .container{            width: 100% ;            position: relative;        }        .bannerUl{            width: 100%;            height: 100%;            position: absolute;            top: 0;            left: 0;        }        .bannerUl li{            width: 25%;            height: 25%;        }    </style></head><body>    <div class="container">            </div>    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>    <script>        // 轮播图父容器        var container=$('.container');        // 轮播图图片地址        var arr=['./img/banner.png','./img/banner2.png','./img/banner3.jpg'];        // 在body里面添加一个图片,以此来动态获取container高度。        $('body').append('<img src="./img/banner.png" alt="" class="heightImg">');        $('.heightImg').css({'width':'100%','position':'absolute','top':'100000px'});        var containerHeight=$('.heightImg').css('height');        console.log($('.heightImg'))        console.log($('.heightImg')[0].offsetHeight)        console.log($('.heightImg')[0].height)        console.log($('.heightImg').outerHeight())        console.log($('.heightImg').height())        console.log(containerHeight);        // var ULstr='<ul class="bannerUl clearfix"></ul>';        // var LIstr='<li class="fl"></li>';        // var topNum=0;        // var leftNum=0;        // for(var i=0;i<arr.length;i++){        //  container.append(ULstr);        //  var ulBox=$('.bannerUl').eq(i);        //  for(var j=0;j<16;j++){        //      ulBox.append(LIstr);        //  }        // }    </script></body></html>说明:闲来无事,想做个具有破碎效果的轮播图备用,希望不要用到react、vue、node等,将来可以兼容各种方法、环境。因为不固定container的高度,所以添加一个图片,获取该图片在width:100%;时候的高度,然后设置给container,在获取img高度的时候获取不到,所有打印的高度都是0px,想看看大佬们除了钩子函数的方法还有没有其他更简单的方法了能够获取img的高度?
查看完整描述

3 回答

?
weixin_慕村6077032

TA贡献1条经验 获得超0个赞

同问题,你解决了吗

查看完整回答
反对 回复 2021-01-26
?
qq_名夏_03454605

TA贡献1条经验 获得超0个赞

用图片的onload事件,你这个之所以获取的高度为0,是因为图片没加载完吧
var img = document.createElement('img');
img.onload = function(){

    var height = img.offsetHeight; //图片的高度

};

$(body).append(img);

查看完整回答
反对 回复 2018-04-17
  • 码农2号
    码农2号
    嗯,应该是加载问题,你这方法我早晨的时候试了,onload的函数就没有进去,更不用说返回一个数值了。
?
web_東

TA贡献2条经验 获得超1个赞

https://img1.sycdn.imooc.com//5ad4ddd000018dda13660768.jpg

高度要设成100%

查看完整回答
反对 回复 2018-04-17
  • 码农2号
    码农2号
    高度设置成100%,图片会拉伸,并不是动态的高度。 var containerHeight=$('.heightImg').css('height');这行我想要获取高度,并非是设置高度。想获取的高度是问题里面第二张图圈起来的部分。
  • 3 回答
  • 0 关注
  • 4411 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信