【问题标题】:Get image dimension after page load页面加载后获取图片尺寸
【发布时间】:2013-03-28 08:35:42
【问题描述】:

我有一个项目需要获取徽标的尺寸并相应地调整其位置。据我了解,页面上的所有元素都应该在$(document).readyonload 事件之后立即可用。我还尝试将脚本放在结束正文标记之前,以确保我可以获得所有内容。我使用 jQuery $(element).width$(element).height 来测量徽标图像。

但是,我并不是每次都得到这些值:我控制台记录了这两个值。有时,它显示为零,我 图像标签已加载,但实际图像仍在加载。我很困惑,因为我在网上搜索,他们都说如果我使用 DOM 准备好或将脚本标记放在最后,所有元素都应该准备好。

【问题讨论】:

标签: javascript jquery html image domready


【解决方案1】:

试试这个

$('#img').load(function() {
// Handler for .load() called.
});

【讨论】:

  • 每次图片添加到dom之后都会调用。你有没有在方法中找到断点??
【解决方案2】:

页面上的所有元素都应该在 $(document).ready 或 onload 事件之后立即可以使用。我还尝试将脚本放在结束正文标记之前,以确保我可以得到所有内容。

不,$(document).ready 事件响应。将脚本作为最后一个元素嵌入正文中只能保证 DOM 结构已经建立。这意味着任何元素引用的外部资源都已经完成加载——唯一能保证这一点的事件是 load 事件。

jQuery 文档明确警告不要将$(document).ready 和“老派”加载事件处理(即body 或window.onload 上的onload 属性)结合使用——因此您应该改用.on('load', handler)。但请注意文档还提到的有关图像的警告。

【讨论】:

  • 这就是答案。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
  • 2016-06-08
  • 1970-01-01
  • 2012-01-24
相关资源
最近更新 更多