在浏览器中识别完整的图像绘制
Identify image paint complete in browser
在浏览器中加载高分辨率图像的情况下,即使在网络从服务器获取图像之后。浏览器需要一些时间来显示它们,因为它逐渐绘制。
如何通过浏览器识别此油漆作业已完成?
http://postimg.org/image/txm6e94jz/- 检查此图像。
主页中的图像呈现了一半,我可以使用什么事件来查看该图像完全渲染?
使用 window.requestAnimationFrame 来捕捉渲染图像的时刻:
function imageRenderedCallback() {
alert("Image Rendered Callback executed");
};
function imageRenderingStarted() {
requestAnimationFrame(imageRenderedCallback);
};
// Attach handler for load event.
document.getElementById('my-image').addEventListener('load', function(){
requestAnimationFrame(imageRenderingStarted);
});
#my-image {
width: 1680px;
height: 1260px
}
<body>
<img id="my-image" src="http://www.hdwallpapers.in/download/mount_fuji_japan_highest_mountain-">
</body>
请参阅请求动画帧。丝般流畅的JavaScript动画的秘诀!文章解释了什么是以及如何使用requestAnimationFrame。
您可以为"加载"事件添加事件侦听器。
document.getElementById('imgId').onload = function (){ /* image loaded */ }
这与Andriy的解决方案非常相似,但我发现它更可靠一些......但不太干净。不过为我完成了工作。
// after preloading the image
requestAnimationFrame(function() {
/*
... code to add the image to the dom
*/
requestAnimationFrame(function() {
document.body.offsetWidth // force repaint
requestAnimationFrame(function() {
// image is painted
})
})
})
相关文章:
- 用图像而不是颜色填充对象(将图像绘制到画布上)
- 仅使用Chrome进行慢速图像绘制
- 将 SVG 图像绘制到 CanvasRenderingContext2D 中
- 为什么我不能将图像绘制到画布中
- 将许多新图像绘制到画布时内存泄漏
- Javascript - 加载GIF冻结,同时将图像绘制到画布(Phonegap/Cordova)
- 画布:绘制图像而不是将图像绘制到画布
- 将图像绘制到<画布>
- 在浏览器中识别完整的图像绘制
- 画布图像绘制失败
- 将图像绘制到画布上
- 如何在画布上为运动图像绘制多条路径
- 将图像绘制到画布有时不显示任何东西
- 修剪透明背景的图像绘制在画布与PHP或javascript
- Javascript将图像绘制在彼此之上
- 我可以将数组值插入到画布的图像绘制函数中吗?
- 画布上的图像绘制比原始尺寸大
- 画布图像绘制不工作
- 将预先加载的图像绘制到画布中
- javascript从缓冲区(nodejs/socket.io)将图像绘制到html中