咱們知道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)
複製代碼