异步图片加载不能撑开DIV

发布于 2022-09-07 19:56:32 字数 142 浏览 27 评论 0

问题描述

官网的文章内容是从后台请求的。然后通过JQ的html()插入到div里面;
插入之后获取容器的高度和实际的高度不符合。
然后会导致溢出。我觉得是图片加载的问题。
有没有大佬提供个思路。
代码在公司电脑, 明天贴上来

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

绿萝 2022-09-14 19:56:32

不能撑开DIV原因是:图片还没有完全加载完成,div不能获取图片的真正高度,导致撑不开。
解决方案:监听图片的加载过程,等图片加载完成后,使用JQ的html()方法插入。

你可以自己写代码判断所有图片加载完成后(序号考虑兼容问题,特别是IE),再插入到dom中。也可以使用现有的插件,比如
imagesLoaded(官网:https://imagesloaded.desandro...

伪代码(这里使用jquery的方式使用该插件,该插件也可以不使用juery):

//html是从后台获取到的数据
var html = "<div>aaa<img src="xxx"/>bbb<img src="xxx"/></div>";
$(html).imagesLoaded( function() {//图片加载完成后再插入到dom中。
       //插入到dom中。
});
那片花海 2022-09-14 19:56:32

楼上说的有些道理,我补充一点,可以通过监听图片的onload事件,在这个事件中,你可以拿到图片的宽高,然后可以暂时先把容器设置为同样的宽高。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文