【发布时间】:2016-08-23 12:20:01
【问题描述】:
我是 JavaScript 新手,对此我大发雷霆......
问题的演示在这里:http://codepen.io/sol_b/pen/PzgdWy
这是脚本:
var sections = function() {
$('.image').each(function() {
var $this = $(this),
x = $this.find('img').width()
$this.width(x);
});
};
$(document).ready(function() {
sections();
});
$(window).resize(function() {
sections();
})
计算图像的宽度并将其分配给图像的容器。这个想法是图像行将始终保持它们的纵横比,容器之间没有间隙。
问题是大约 50% 的时间代码会失败,并且图像只是挤在一起。调整窗口大小可以修复它,所以我认为这与加载顺序有关。
我尝试使用 window.onload 和 img.onload 代替 document.ready,但这些并没有解决问题。我错过了脚本中的某些内容吗?
【问题讨论】:
-
来自the docs: "如果代码依赖于加载的资产(例如,如果需要图像的尺寸),则代码应放在@的处理程序中改为 987654326@ 事件。”
-
Documentation 声明“如果代码依赖于加载的资源(例如,如果需要图像的尺寸),则应将代码放在加载事件的处理程序中。”
-
@JuanMendes 请在此处删除重复项。这不是问题!这与
all图像无关。 -
有一个关于如何等待特定图像的示例stackoverflow.com/questions/15134468/… 请注意图像可能会被缓存,因此在您注册侦听器时可能已经触发了加载事件
标签: javascript jquery css