日期:2014-05-16 浏览次数:20402 次
<img alt="lazy image" title="lazy image" src2="http://www.abc.com/lazeimage.jpg">
function getPosition(h) {
var a = navigator.userAgent.toLowerCase();
var b = (a.indexOf("opera") != -1);
var e = (a.indexOf("msie") != -1 && !b);
var d = h;
if (d.parentNode === null || d.style.display == "none") {
return false
}
var l = null;
var k = [ ];
var i;
if (d.getBoundingClientRect) {
i = d.getBoundingClientRect();
if (a.indexOf("ipad") != -1) {
return {
x: i.left,
y: i.top
}
}
var c = jQuery(window).scrollTop();
var f = jQuery(window).scrollLeft();
return {
x: i.left + f,
y: i.top + c
}
} else {
if (document.getBoxObjectFor) {
i = document.getBoxObjectFor(d);
var j = (d.style.borderLeftWidth) ? parseInt(d.style.borderLeftWidth) : 0;
var g = (d.style.borderTopWidth) ? parseInt(d.style.borderTopWidth) : 0;
k = [i.x - j, i.y - g]
} else {
k = [d.offsetLeft, d.offsetTop];
l = d.offsetParent;
if (l != d) {
while (l) {
k[0] += l.offsetLeft;
k[1] += l.offsetTop;
l = l.offsetParent
}
}
if (a.indexOf("opera") != -1 || (a.indexOf("safari") != -1 && d.style.position == "absolute")) {
k[0] -= document.body.offsetLeft;
k[1] -= document.body.offsetTop
}
}
}
if (d.parentNode) {
l = d.parentNode
} else {
l = null
}
while (l && l.tagName != "BODY" && l.tagName != "HTML") {
k[0] -= l.scrollLeft;
k[1] -= l.scrollTop;
if (l.parentNode) {
l = l.parentNode
} else {
l = null
}
}
return {
x: k[0],
y: k[1]
}
}
jQuery(document).ready(function lazyload() {
var d = jQuery("img[src2]");
var a = function() {
return jQuery(window).height() + jQuery(window).scrollTop()
};
imgLoad(d, a());
var c = 150;
var b = 0;
jQuery(window).bind("scroll",
function() {
var e = Math.abs(jQuery(window).scrollTop() - b);
if (e >= c) {
imgLoad(d, a());
if (imgLoadStatus == 1) {
b += c;
imgLoadStatus = 0
}
}
})
});
var imgLoadStatus = 0;
function imgLoad(b, a) {
b = jQuery("img[src2]");
b.each(function() {
var d = jQuery(this).attr("src2");
if (d) {
var c = getPosition(jQuery(this)[0]).y;
if (c <= a && (c + jQuery(this).height()) >= jQuery(window).scrollTop()) {
jQuery(this).attr("src", d).removeAttr("src2")
}
}
});
imgLoadStatus = 1
};