咱们知道js定时器一共有两种javascript
var count = 0 ;
setTimeout(function(){
console.log(++cout) //=> 1
},1000)
var count1 = 0 ;
setInterval(function(){
console.log(++cout) //=> 1
},1000)
复制代码
var count = 0 ;
var timer1 = setTimeout(function(){
console.log(++cout) //=> 1
},1000)
console.log(timer1)//=> 1
var count1 = 0 ;
var timer2 = setInterval(function(){
console.log(++cout) //=> 1
},1000)
console.log(timer2)//=> 2
复制代码
var t1 = setTimeout(function(){
//当方法执行完成以后,清除定时器
clearTimeout(t1);
clearInterval(t1)
t1 = null;
//手动把序号的变量复制为null,至关于把排队好的纸条撕毁扔掉
},1000)
复制代码
下面咱们结合定时器实现懒加载,懒加载的实现请参考如何实现图片懒加载css
~function(){
function lazyImg(curImg){
curImg.isload = true;//避免重复处理isLoad属性
var tempImg = new Image;
tempImg.onload = function(){
curImg.src = tempImg.src;
curImg.style.display = 'block';
imgFade(curImg);
tempImg = null;
}
tempImg.src = curImg.getAttribute('data-img');
}
function imgFade(curImg){
var n = 0;
var timer = setTimeout(function(){
if(n > 1){
clearInterval(timer);
timer = null;
return;
}
n += 0.05;
utils.css(curImg,'opacity',n)
},17)
//浏览器都有个最小反应时间(谷歌5-7是,ie 10-13s...)因此咱们通常把17s看成定时器的最佳时间
}
return{//模块入口,在入口控制执行顺序
init:function(){
lazyImg()
}
}
}()
var t1 = setTimeout(function(){
//当方法执行完成以后,清除定时器
clearTimeout(t1);
//或者clearInterval(t1)
t1 = null;
//手动把序号的变量复制为null,至关于把排队好的纸条撕毁扔掉
},1000)
复制代码