JQuery图像大小为零

时间:2018-03-29 13:30:04

标签: javascript jquery image performance size

我使用naturalHeightnaturalWidth

创建了一个小插件

有时加载页面时我的宽度和高度为0(其他时候工作正常)。 我想这是因为它在加载图像之前计算尺寸。

我该如何纠正?

我曾尝试在$("selector").myplugin()内运行插件$(document).ready,但这并没有改变任何内容

我还尝试将setTimeout包裹在我使用naturalHeightnaturalWidth的变量周围,但这并不能阻止其余的代码运行 - 而且我不会使加载速度慢于必要(如果没有必要,请将setTimeout中的所有内容包起来)

所以我的问题 - 有没有办法

  1. 如果大小为0 - 请稍等一下再试一次
  2. 不再继续休息,直到它不再为0
  3. 或者有人有其他解决方案吗?

1 个答案:

答案 0 :(得分:0)

准备等待只加载dom,你可以在你的图像上使用load()顺序,在这种情况下,你不要等到所有的窗口榆树都被加载

在加载图片后看下面的片段,最后一个的大小打印在底部,



$(function(){
  $( "#img" ).load(function() {
    console.log($(this).width()+"-"+$(this).height())
  });
    
})

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img id="img" src="https://cdn.pixabay.com/photo/2017/09/07/14/15/wide-2725426_960_720.jpg" >
&#13;
&#13;
&#13;