如何确定图像何时完成加载
How do I determine when an image has finished loading?
我有一块php代码,可以随机加载图像。我正在尝试确定图像何时加载,以便对其执行一些附加操作。以下是我当前加载图像的方式:
// Gets my image
$sql = "SELECT id FROM images WHERE user_id=$owner_user_id LIMIT 0,1";
$imgres = mysql_query($sql);
if ($imgres) {
$imgrow = mysql_fetch_array($imgres, MYSQL_ASSOC);
if (!empty($imgrow)) {
echo ('<image src="img.php?id=' . $imgrow['id'] . '" id="profile_img" style="visibility:hidden"/>');
}
}
我需要做的一个操作是获取图像的宽度。我得到的图像是这样的:
alert("IMAGE WIDTH:"+$('#profile_img').width());
它当前返回0,因为它是在加载图像之前调用的。我已经尝试将此方法调用添加到我的document.ready块中,但它仍然会在加载图像之前被调用。有没有一种简单的方法可以确定图像何时加载?
$(document).ready(function(){
$('#img_id').load(function() {
alert('image is loaded');
});
});
这将完成
您可以使用jquery:将加载事件处理程序绑定到您的图像
http://api.jquery.com/load-event/
$("#profile_img").load(function(){
alert(("IMAGE WIDTH:"+$('#profile_img').width())
});
http://api.jquery.com/load-event/
这实际上与PHP无关;图像加载是在客户端完成的,所以您需要在Javascript端完成。您将处理Javascript事件-这里有一个入门:
http://www.quirksmode.org/js/introevents.html
幸运的是,jQuery有一个内置函数可以为您绑定到事件(甚至称为load()
!(,它允许您在加载内容后传递回调以激发。
您最好的选择是在加载DOM之前用JavaScript预加载图像:
<SCRIPT language="JavaScript">
preload_image = new Image(25,25);
preload_image.src="http://mydomain.com/image.gif";
</SCRIPT>
加载图像时,不要使用jQuery .load()
进行测试。根据jQuery文档:
•它不能持续工作,也不能可靠地跨浏览器
•如果将图像src设置为与之前相同的src,则在WebKit中无法正确启动
•它没有正确地弹出DOM树
•对于已经存在于浏览器缓存中的图像,可以停止激发
相关文章:
- Google Chrome扩展程序可以检测所有脚本何时加载完成吗
- Ember我如何知道路由模板何时完成加载并触发回调
- 如何在加载完所有脚本后初始化angular
- jQuery-如何检测页面何时完成加载
- BX滑块加载更多幻灯片,检测何时到达终点
- 当浏览器请求部分内容范围请求时,如何检测pdf何时加载到iframe中
- 何时需要JS加载所有模块
- 如何检测通过JSON数据引用的图像何时加载AJAX
- Require.js何时加载文件
- 检测何时加载Facebook Like Button
- 一种脚本,它从数组中随机加载图像,在查看完所有图像之前不重复任何图像
- 以增量方式上传页面的内容(不必等到加载完所有内容)
- 检测所有图像何时加载到角度.js视图中
- 如何查找部分加载何时开始和结束
- 如何知道<嵌入>元素的内容何时加载
- 在 modernizr/yepnope 加载完所有文件后执行回调
- 使用具有标签的Javascript动态添加HTML.如何判断图像何时加载
- 如何定义何时显示或不显示加载屏幕
- 我怎么知道何时加载了窗口弹出窗口
- 磁头.js - 何时用于提高性能(减少加载时间)