Browse Source

fixed 'unload' param can't work

pull/91/head
Alon Zhang 9 years ago
parent
commit
87fe2dca8a
  1. 13
      dist/echo.js
  2. 4
      dist/echo.min.js
  3. 11
      src/echo.js

13
dist/echo.js vendored

@ -1,4 +1,4 @@
/*! echo.js v1.7.0 | (c) 2015 @toddmotto | https://github.com/toddmotto/echo */ /*! echo-js v1.7.3 | (c) 2015 @toddmotto | https://github.com/toddmotto/echo */
(function (root, factory) { (function (root, factory) {
if (typeof define === 'function' && define.amd) { if (typeof define === 'function' && define.amd) {
define(function() { define(function() {
@ -61,7 +61,10 @@
useDebounce = opts.debounce !== false; useDebounce = opts.debounce !== false;
unload = !!opts.unload; unload = !!opts.unload;
callback = opts.callback || callback; callback = opts.callback || callback;
echo.render();
//note by Alon Zhang | zhangjinlong3546@sina.com
//repeatedly render, debounceOrThrottle function has called render
// echo.render();
if (document.addEventListener) { if (document.addEventListener) {
root.addEventListener('scroll', debounceOrThrottle, false); root.addEventListener('scroll', debounceOrThrottle, false);
root.addEventListener('load', debounceOrThrottle, false); root.addEventListener('load', debounceOrThrottle, false);
@ -86,7 +89,11 @@
if (inView(elem, view)) { if (inView(elem, view)) {
if (unload) { if (unload) {
elem.setAttribute('data-echo-placeholder', elem.src); //add by Alon Zhang | zhangjinlong3546@sina.com
//Only the first time, storage placeholder picture
if(!elem.getAttribute('data-echo-placeholder')){
elem.setAttribute('data-echo-placeholder', elem.src);
}
} }
if (elem.getAttribute('data-echo-background') !== null) { if (elem.getAttribute('data-echo-background') !== null) {

4
dist/echo.min.js vendored

@ -1,2 +1,2 @@
/*! echo.js v1.7.0 | (c) 2015 @toddmotto | https://github.com/toddmotto/echo */ /*! echo-js v1.7.3 | (c) 2015 @toddmotto | https://github.com/toddmotto/echo */
!function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t)}):"object"==typeof exports?module.exports=e:t.echo=e(t)}(this,function(t){"use strict";var e,n,o,r,c,a={},u=function(){},d=function(t){return null===t.offsetParent},i=function(t,e){if(d(t))return!1;var n=t.getBoundingClientRect();return n.right>=e.l&&n.bottom>=e.t&&n.left<=e.r&&n.top<=e.b},l=function(){(r||!n)&&(clearTimeout(n),n=setTimeout(function(){a.render(),n=null},o))};return a.init=function(n){n=n||{};var d=n.offset||0,i=n.offsetVertical||d,f=n.offsetHorizontal||d,s=function(t,e){return parseInt(t||e,10)};e={t:s(n.offsetTop,i),b:s(n.offsetBottom,i),l:s(n.offsetLeft,f),r:s(n.offsetRight,f)},o=s(n.throttle,250),r=n.debounce!==!1,c=!!n.unload,u=n.callback||u,a.render(),document.addEventListener?(t.addEventListener("scroll",l,!1),t.addEventListener("load",l,!1)):(t.attachEvent("onscroll",l),t.attachEvent("onload",l))},a.render=function(){for(var n,o,r=document.querySelectorAll("img[data-echo], [data-echo-background]"),d=r.length,l={l:0-e.l,t:0-e.t,b:(t.innerHeight||document.documentElement.clientHeight)+e.b,r:(t.innerWidth||document.documentElement.clientWidth)+e.r},f=0;d>f;f++)o=r[f],i(o,l)?(c&&o.setAttribute("data-echo-placeholder",o.src),null!==o.getAttribute("data-echo-background")?o.style.backgroundImage="url("+o.getAttribute("data-echo-background")+")":o.src=o.getAttribute("data-echo"),c||(o.removeAttribute("data-echo"),o.removeAttribute("data-echo-background")),u(o,"load")):c&&(n=o.getAttribute("data-echo-placeholder"))&&(null!==o.getAttribute("data-echo-background")?o.style.backgroundImage="url("+n+")":o.src=n,o.removeAttribute("data-echo-placeholder"),u(o,"unload"));d||a.detach()},a.detach=function(){document.removeEventListener?t.removeEventListener("scroll",l):t.detachEvent("onscroll",l),clearTimeout(n)},a}); !function(t,e){"function"==typeof define&&define.amd?define(function(){return e(t)}):"object"==typeof exports?module.exports=e:t.echo=e(t)}(this,function(t){"use strict";var e,o,n,r,c,a={},u=function(){},d=function(t){return null===t.offsetParent},l=function(t,e){if(d(t))return!1;var o=t.getBoundingClientRect();return o.right>=e.l&&o.bottom>=e.t&&o.left<=e.r&&o.top<=e.b},i=function(){(r||!o)&&(clearTimeout(o),o=setTimeout(function(){a.render(),o=null},n))};return a.init=function(o){o=o||{};var a=o.offset||0,d=o.offsetVertical||a,l=o.offsetHorizontal||a,f=function(t,e){return parseInt(t||e,10)};e={t:f(o.offsetTop,d),b:f(o.offsetBottom,d),l:f(o.offsetLeft,l),r:f(o.offsetRight,l)},n=f(o.throttle,250),r=o.debounce!==!1,c=!!o.unload,u=o.callback||u,document.addEventListener?(t.addEventListener("scroll",i,!1),t.addEventListener("load",i,!1)):(t.attachEvent("onscroll",i),t.attachEvent("onload",i))},a.render=function(){for(var o,n,r=document.querySelectorAll("img[data-echo], [data-echo-background]"),d=r.length,i={l:0-e.l,t:0-e.t,b:(t.innerHeight||document.documentElement.clientHeight)+e.b,r:(t.innerWidth||document.documentElement.clientWidth)+e.r},f=0;d>f;f++)n=r[f],l(n,i)?(c&&(n.getAttribute("data-echo-placeholder")||n.setAttribute("data-echo-placeholder",n.src)),null!==n.getAttribute("data-echo-background")?n.style.backgroundImage="url("+n.getAttribute("data-echo-background")+")":n.src=n.getAttribute("data-echo"),c||(n.removeAttribute("data-echo"),n.removeAttribute("data-echo-background")),u(n,"load")):c&&(o=n.getAttribute("data-echo-placeholder"))&&(null!==n.getAttribute("data-echo-background")?n.style.backgroundImage="url("+o+")":n.src=o,n.removeAttribute("data-echo-placeholder"),u(n,"unload"));d||a.detach()},a.detach=function(){document.removeEventListener?t.removeEventListener("scroll",i):t.detachEvent("onscroll",i),clearTimeout(o)},a});

11
src/echo.js

@ -60,7 +60,10 @@
useDebounce = opts.debounce !== false; useDebounce = opts.debounce !== false;
unload = !!opts.unload; unload = !!opts.unload;
callback = opts.callback || callback; callback = opts.callback || callback;
echo.render();
//note by Alon Zhang | zhangjinlong3546@sina.com
//repeatedly render, debounceOrThrottle function has called render
// echo.render();
if (document.addEventListener) { if (document.addEventListener) {
root.addEventListener('scroll', debounceOrThrottle, false); root.addEventListener('scroll', debounceOrThrottle, false);
root.addEventListener('load', debounceOrThrottle, false); root.addEventListener('load', debounceOrThrottle, false);
@ -85,7 +88,11 @@
if (inView(elem, view)) { if (inView(elem, view)) {
if (unload) { if (unload) {
elem.setAttribute('data-echo-placeholder', elem.src); //add by Alon Zhang | zhangjinlong3546@sina.com
//Only the first time, storage placeholder picture
if(!elem.getAttribute('data-echo-placeholder')){
elem.setAttribute('data-echo-placeholder', elem.src);
}
} }
if (elem.getAttribute('data-echo-background') !== null) { if (elem.getAttribute('data-echo-background') !== null) {

Loading…
Cancel
Save