ОБНОВЛЕНИЕ: это довольно старое. Если вы в наши дни хотите отложить загрузку изображений, я бы порекомендовал посмотреть:
- Полное руководство по отложенной загрузке изображений
- Родная отложенная загрузка для веб-платформы
- Советы по запуску собственной ленивой загрузки
Используйте a 5699899/lazy_loading_images_css-tricks.gif
в качестве src
изображений и включите width
и height
окончательного изображения.
/* lazyload.js (c) Lorenzo Giuliani * MIT License (http://www.opensource.org/licenses/mit-license.html) * * expects a list of: * `` */ !function(window)( var $q = function(q, res)( if (document.querySelectorAll) ( res = document.querySelectorAll(q); ) else ( var d=document , a=d.styleSheets(0) || d.createStyleSheet(); a.addRule(q,'f:b'); for(var l=d.all,b=0,c=(),f=l.length;b = 0 && rect.left >= 0 && rect.top <= (window.innerHeight || document.documentElement.clientHeight) ) ) var images = new Array() , query = $q('img.lazy') , processScroll = function()( for (var i = 0; i < images.length; i++) ( if (elementInViewport(images(i))) ( loadImage(images(i), function () ( images.splice(i, i); )); ) ); ) ; // Array.prototype.slice.call is not callable under our lovely IE8 for (var i = 0; i < query.length; i++) ( images.push(query(i)); ); processScroll(); addEventListener('scroll',processScroll); )(this);
См. Pen
Lazy Loading Images Криса Койера (@chriscoyier)
на CodePen.