替换后等待图像加载 div
Waiting for images to load after replacing div
我正在调用 AJAX 来替换 div:
$.post(url, function(data)
{
$('#product_list').first().replaceWith(data.products);
});
我的问题是图像的宽度为 100%,高度为自动。这意味着我必须等到图像加载后才能 运行 同位素修复砖石网格的布局。
$('#product_list').isotope({ itemSelector: '.product'} );
当我用 replaceWith() 替换时,它不会在加载图像后触发 $(window).load()
,所以我不知道该怎么做。
我知道这不是最佳解决方案,因为它会导致用户看到跳转。对我来说最好的解决方法是将图像高度设置为固定高度,但我使用的是响应式 bootstrap 网格,所以无论如何我都看不到这样做,因为我需要图像适应其容器的 100% 宽度以保持设计.
我想不出解决这个问题的办法。不知道每张图片的高度确定后如何触发事件
您可以创建一个 JS img 对象并使用该图像的 onload 事件来触发您自己的 javascript 代码,该代码会执行一些簿记工作,当所有图像都已触发时您会触发您的加载事件。
var $imgs = $('img'), total = $imgs.length, sum = 0;
$imgs.each(function(){
var img = new Image();
img.src = $(this).attr('src');
img.onload = function() {
sum++;
if (sum === total) {
// all images have loaded, so you can fire your event.
}
}
});
我正在调用 AJAX 来替换 div:
$.post(url, function(data)
{
$('#product_list').first().replaceWith(data.products);
});
我的问题是图像的宽度为 100%,高度为自动。这意味着我必须等到图像加载后才能 运行 同位素修复砖石网格的布局。
$('#product_list').isotope({ itemSelector: '.product'} );
当我用 replaceWith() 替换时,它不会在加载图像后触发 $(window).load()
,所以我不知道该怎么做。
我知道这不是最佳解决方案,因为它会导致用户看到跳转。对我来说最好的解决方法是将图像高度设置为固定高度,但我使用的是响应式 bootstrap 网格,所以无论如何我都看不到这样做,因为我需要图像适应其容器的 100% 宽度以保持设计.
我想不出解决这个问题的办法。不知道每张图片的高度确定后如何触发事件
您可以创建一个 JS img 对象并使用该图像的 onload 事件来触发您自己的 javascript 代码,该代码会执行一些簿记工作,当所有图像都已触发时您会触发您的加载事件。
var $imgs = $('img'), total = $imgs.length, sum = 0;
$imgs.each(function(){
var img = new Image();
img.src = $(this).attr('src');
img.onload = function() {
sum++;
if (sum === total) {
// all images have loaded, so you can fire your event.
}
}
});