我已经使用http://www.appelsiini.net/projects/lazyload这个插件来加载图像。
当我向下滚动页面图像正在加载时它工作正常,但我需要在页面加载时显示第一行图像。
我怎样才能做到这一点?
我已经使用http://www.appelsiini.net/projects/lazyload这个插件来加载图像。
当我向下滚动页面图像正在加载时它工作正常,但我需要在页面加载时显示第一行图像。
我怎样才能做到这一点?
默认情况下,当图像出现在屏幕上时会加载它们。如果您希望图像更早加载,您可以设置阈值参数。将阈值设置为 200 会使图像在可见之前加载 200 像素。
$("img.lazy").lazyload({ threshold : 200 });
所以在你的情况下,页面的第一行有多远?
$(function() {
var $firstRow = $('table:first tr:first'),
threshold = $firstRow.offset().top + $firstRow.height();
$("img.lazy").lazyload({ threshold : threshold });
});
或类似的东西。
在运行的网站演示页面中,显示第一行页面正在加载,请参阅此DEMO
$(function() {
$("img").lazyload({
effect : "fadeIn",
/*
appear : function(elements_left, settings) {
console.log("appear");
console.log(elements_left);
//console.log(this, elements_left, settings);
},
load : function(elements_left, settings) {
console.log("load");
console.log(elements_left);
//console.log(this, elements_left, settings);
}
*/
});
});
您的图像缺少宽度和高度属性。没有它们,延迟加载将无法正常工作。document.ready
在不知道宽度和高度的情况下,浏览器无法知道事件触发时图像在布局中的位置。正确的图像标签如下所示:
<img class="lazy" src="img/grey.gif" data-original="img/example.jpg" width="640" heigh="480">