/** | |
* aui-lazyload.js | |
* @author 流浪男 | |
* Licensed under the MIT license. | |
* http://www.opensource.org/licenses/mit-license.php | |
*/ | |
(function( window, undefined ) { | |
"use strict"; | |
var _loadImgNodes; | |
var auiLazyload = function(params) { | |
this.errorImage = params.errorImage||false; | |
this._init(params); | |
}; | |
auiLazyload.prototype = { | |
_init: function(params) { | |
var self = this; | |
_loadImgNodes = document.querySelectorAll('[data-src]'); | |
self._judgeImages(); | |
window.addEventListener('scroll', function(){ | |
_loadImgNodes = document.querySelectorAll('[data-src]'); | |
self._judgeImages(); | |
}, false); | |
}, | |
_judgeImages:function() { | |
var self = this; | |
if(_loadImgNodes.length){ | |
for(var i = 0; i < _loadImgNodes.length; i++){ | |
if (_loadImgNodes[i].getBoundingClientRect().top < window.innerHeight) { | |
self._loadImage(_loadImgNodes[i]); | |
} | |
} | |
} | |
}, | |
_loadImage:function(el){ | |
var self = this; | |
var img = new Image(); | |
img.src = el.getAttribute('data-src'); | |
el.src = el.getAttribute('data-src'); | |
el.removeAttribute("data-src"); | |
// // 图片加载失败 | |
img.onerror = function() { | |
el.src = self.errorImage || el.getAttribute('src'); | |
el.removeAttribute("data-src"); | |
}; | |
} | |
} | |
window.auiLazyload = auiLazyload; | |
})(window); |