首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在图像加载时更改元素的高度?

如何在图像加载时更改元素的高度?
EN

Stack Overflow用户
提问于 2020-03-23 22:38:06
回答 1查看 25关注 0票数 0

我编写了一个函数来更改图像加载时元素的高度:

代码语言:javascript
复制
$(document).ready(function () {


  $("img").load(function() {
    var width = $(this).width();
    $(".item").height(width*0.85);
  });

问题是,当我重新加载我的页面时,它有时工作,有时不工作。只是随机性地改变了高度,有时不改变。我怎样才能让它一直工作?

html:

代码语言:javascript
复制
<div class="row row-10 items-grid">
         <div class="col-md-4 col-xs-6">
             <a class="item">
                  <img src="/get/2" alt="">
                  <div class="overlay">
                      <h2 class="">Dogs</h2>
                  </div>
             </a>
          </div>

          <div class="col-md-4 col-xs-6">
            <a class="item" >
                 <img src="/get/3" alt="">
                <div class="overlay">
                <h2 class="uppercase">Cats</h2>
               </div>
            </a>
          </div>
        </div>
EN

回答 1

Stack Overflow用户

发布于 2020-03-23 22:51:25

您可以尝试循环所有图像,然后分别向每个图像添加图像onload事件,当每个图像加载完成后,您可以更新最接近图像的元素的高度,而不是一次更新所有.item元素,例如:

代码语言:javascript
复制
$(document).ready(function() {
  $('img').each(function() {
    var $this = $(this);
    var img = new Image();
    img.onload = function() {
      var width = $(this).width();
      $this.closest(".item").height(width * 0.85);
    };
    img.src = $(this).attr('src');
  });
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60815692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档