66 lines
1.6 KiB
Java
66 lines
1.6 KiB
Java
function isInSight(el) {
|
|
var bound = el.getBoundingClientRect();
|
|
var clientHeight = window.innerHeight;
|
|
//只考虑向下滚动加载
|
|
//const clientWidth=window.innerWeight;
|
|
return bound.top <= clientHeight + 100;
|
|
}
|
|
|
|
var index = 0;
|
|
|
|
function checkImgs() {
|
|
var imgs = document.querySelectorAll('.my-photo');
|
|
for (var i = index; i < imgs.length; i++) {
|
|
if (isInSight(imgs[i])) {
|
|
loadImg(imgs[i]);
|
|
index = i;
|
|
}
|
|
}
|
|
}
|
|
|
|
function loadImg(el) {
|
|
var source = el.getAttribute("data-src");
|
|
el.src = source;
|
|
}
|
|
// var mustRun = 500
|
|
// function throttle(fn, mustRun) {
|
|
// var timer = null;
|
|
// var previous = null;
|
|
// return function() {
|
|
// var now = new Date();
|
|
// var context = this;
|
|
// var args = arguments;
|
|
// if (!previous) {
|
|
// previous = now;
|
|
// }
|
|
// var remaining = now - previous;
|
|
// if (mustRun && remaining >= mustRun) {
|
|
// fn.apply(context, args);
|
|
// previous = now;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
|
|
function throttle(fn) {
|
|
var timer = null;
|
|
var previous = null;
|
|
return function () {
|
|
var now = new Date();
|
|
var context = this;
|
|
var args = arguments;
|
|
if (!previous) {
|
|
previous = now;
|
|
}
|
|
var remaining = now - previous;
|
|
setTimeout(refresh(fn, remaining, context, args, previous, now));
|
|
}
|
|
}
|
|
|
|
function refresh(fn, remaining, context, args, previous, now) {
|
|
if (remaining >= 500) {
|
|
fn.apply(context, args);
|
|
previous = now;
|
|
}
|
|
}
|