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