我已经构建了一个包含用于显示艺术品的iFrame的投资组合网站。要显示每个图稿,将包含大图像的html页面加载到iFrame中。iFrame .load事件不会等待预加载图像完成
iFrame在空的时候被隐藏(display:none),并且只有在内容完全加载时才会淡入。
//pass url of artwork page to iFrame
$("#creativeiframe").attr('src', thisLink.attr('href'));
//fade up iFrame once content loaded
$('#creativeiframe').load(function() {
$('#creativeiframe').fadeIn(300);
});
我有这个预期运行 - 当包括大图像内容已经完全加载内嵌框架只会加载,但加载速度慢促使我尝试预装艺术品图像,这样他们就开始下载前用户点击将其加载到iFrame中。
function preloadImage(url)
{
var img=new Image();
img.src=url;
}
现在我有一个问题 - 有时,当用户点击加载一个艺术品的iFrame会褪色起来呈现出半载图像,或者更糟的只显示了不加载图片的HTML内容。我查看了Chrome开发人员工具网络检查员,并且在问题图像已开始预加载但未完成时出现这种情况。
所以我的问题是:
一)有谁知道为什么发生这种情况?这是否是因为预加载在iFrame src发生更改时没有网络请求,因此.load事件不会等待映像加载?
b。)有没有一种方法可以让iFrame .load事件等待“半预装载”图像在发射前完成加载?
感谢预期 - 去轻松,我是一个JS新手!
如果您的图片真的很大,我建议您使用** Progressive JPEG **进行预览。 –
谢谢伊戈尔,是的,我使用渐进JPEG,尽可能压缩等。 –
顺便说一句,有人知道我的问题为什么被拒绝吗?没有人要求澄清或完全回答它,所以假设它是相当明确的,而不是一个愚蠢的问题。我是新来这个论坛,所以想改善... –