/*
* 函数功能:函数节流
* fn 需要调用的函数
* delay 函数需要延迟处理的时间
* mustRunDelay 超过该时间,函数一定会执行
* */
var throttle = function (fn, delay, mustRunDelay) {
var timer; //使用闭包存储timer
var t_start;
//闭包返回的函数
return function (val) {
var args = arguments, t_curr = +new Date(); //使用+new Date() 将字符串转换成数字
clearTimeout(timer);
if (!t_start) { // 使用!t_start 如果t_start=undefined或者null 则为true
t_start = t_curr;
}
if (t_curr - t_start >= mustRunDelay) {
fn.apply(null, args);
t_start = t_curr;
} else {
timer = setTimeout(function () {
fn.apply(null, args);
}, delay);
}
}
};
/*使用方法*/
var throttle1 = throttle(fn, 500, 4000);
//在该需要调用的函数内部调用此函数
throttle1(val); //此处传人的参数为以上fn需要传人的参数
function initElementMap() {
var el = document.getElementsByTagName('img');
for (var j = 0, len2 = el.length; j < len2; j++) {
//判断当前的img是否加载过了,或者有lazy_src标志 [未完成]
if (typeof (el[j].getAttribute("lazy_src"))) {
element_obj.push(el[j]);
download_count++;
}
}
}
function lazy() {
if (!download_count) return;
var innerHeight = getViewport();
for (var i = 0, len = element_obj.length; i < len; i++) {
//得到图片相对document的距上距离
var t_index = getElementViewTop(element_obj[i]);
if (t_index - getScrollTop() < innerHeight) {
element_obj[i].src = element_obj[i].getAttribute("lazy-src");
delete element_obj[i];
download_count--;
}
}
}
window.onscroll = window.onload = function () {
setTimeout(function () {
lazy();
}, 1000)
}
var lazyLoad = (function () {
function init() {
initElementMap();
lazy();
};
return {
init: init
}
})();
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有