/**
|
* 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);
|