Doi*_*gey 30 javascript jquery
我知道Stackoverflow上有很多这些,但我没有找到一个适用于我最近版本的jquery(1.10.2).
我试过了:
$(".lazy").load(function (){}
但我相信经过一些研究.load用于检测图像负载在jQuery 1.8中已被弃用.我需要做的是在加载图像后激活图像调整大小功能.我无法控制HTML,目前我必须通过.attr()在页面加载后附加属性(via )来添加图像尺寸,以便我可以使用lazyload js.
问题是我需要一种准确的方法来阻止我的各种脚本,直到图像正确加载,否则函数有时会在每个图像加载之前触发.我尝试过使用$(window).load(function (){});它有时在每个图像加载之前仍然会触发.
Dar*_*nov 46
我经常这样做:
var image = new Image();
image.onload = function () {
console.info("Image loaded !");
//do something...
}
image.onerror = function () {
console.error("Cannot load image");
//do something else...
}
image.src = "/images/blah/foo.jpg";
Run Code Online (Sandbox Code Playgroud)
请记住,加载是异步的,因此您必须在onload和onerror事件中继续执行脚本.
opt*_*tor 24
还有一个有用的.complete图像对象的属性,你可以使用它,如果你已经设置了.src你的<img>连接到它的任何事件侦听器之前:
var img=document.getElementById('myimg');
var func=function(){
// do your code here
// `this` refers to the img object
};
if(img.complete){
func.call(img);
}
else{
img.onload=func;
}
Run Code Online (Sandbox Code Playgroud)
参考:http://www.w3schools.com/jsref/prop_img_complete.asp
Ale*_*x W 19
我会给需要这个约束的图像一个类,如下所示mustLoad:
<img class="mustLoad" src="..." alt="" />
Run Code Online (Sandbox Code Playgroud)
然后创建一个通用的图像加载处理函数,例如:
$('img.mustLoad').on('load',function(){
/* Fire your image resize code here */
});
Run Code Online (Sandbox Code Playgroud)
编辑:
回应您对.load()上述.load()弃用的评论,不赞成使用,.on('load') 以减少onLoad事件和Ajax加载之间的歧义.
小智 12
在等待加载多个图像的情况下:
var images = $("#div-with-images img");
var unloaded = images.length;
images.on('load', function(){
-- unloaded;
if (!unloaded) {
// here all images loaded, do your stuff
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
78820 次 |
| 最近记录: |