Skip to content

Commit

Permalink
Added loadAll public method in 8.x too
Browse files Browse the repository at this point in the history
  • Loading branch information
verlok committed Jun 23, 2018
1 parent 2d9da68 commit c9dd189
Show file tree
Hide file tree
Showing 6 changed files with 222 additions and 8 deletions.
202 changes: 202 additions & 0 deletions demos/load_all.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
<!DOCTYPE html>
<html>

<head lang="en">
<meta charset="UTF-8">
<title>
Lazyload tests
</title>
<style>
ul,
li {
list-style-type: none;
margin: 0;
padding: 0;
}

a,
img {
display: block;
}

img {
border: 0;
}

img:not([src]) {
visibility: hidden;
}

/* Fixes Firefox anomaly during image load */
@-moz-document url-prefix() {
img:-moz-loading {
visibility: hidden;
}
}

button {
position: fixed;
bottom: 10px;
width: 10em;
height: 3em;
left: 50%;
margin-left: -5em;
}
</style>
</head>

<body>
<div id="results1" class="results">
<ul>
<li>
<a href="#/it/donna/stivaletti_cod44721746jj.html"><img alt="Stivaletti" data-src="../img/44721746JJ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/open-toe_cod44740806jx.html"><img alt="Open toe" data-src="../img/44740806JX_15_r.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-basse_cod44735977gr.html"><img alt="Sneakers &amp; Tennis" data-src="../img/44735977GR_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-basse_cod44738717am.html"><img alt="Sneakers &amp; Tennis shoes basse" data-src="../img/44738717AM_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-alte_cod44739940cb.html"><img alt="Sneakers &amp; Tennis shoes alte" data-src="../img/44739940CB_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-alte_cod44740860xg.html"><img alt="Sneakers &amp; Tennis shoes alte" data-src="../img/44740860XG_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-basse_cod44738719vn.html"><img alt="Sneakers &amp; Tennis shoes basse" data-src="../img/44738719VN_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-basse_cod44739938wk.html"><img alt="Sneakers &amp; Tennis shoes basse" data-src="../img/44739938WK_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivali_cod44736534fq.html"><img alt="Stivali" data-src="../img/44736534FQ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivali_cod44735388ui.html"><img alt="Stivali" data-src="../img/44735388UI_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44739165ev.html"><img alt="Stivaletti" data-src="../img/44739165EV_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44739454hf.html"><img alt="Stivaletti" data-src="../img/44739454HF_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivali_cod44719480km.html"><img alt="Stivali" data-src="../img/44719480KM_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44719687td.html"><img alt="Stivaletti" data-src="../img/44719687TD_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/decollete_cod44721899ng.html"><img alt="Décolleté" data-src="../img/44721899NG_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44721744sl.html"><img alt="Mocassini" data-src="../img/44721744SL_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44716730kr.html"><img alt="Stivaletti" data-src="../img/44716730KR_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/decollete_cod44718734xl.html"><img alt="Décolleté" data-src="../img/44718734XL_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/decollete_cod44721796uk.html"><img alt="Décolleté" data-src="../img/44721796UK_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/francesine_cod44717679mj.html"><img alt="Francesine" data-src="../img/44717679MJ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44724594vu.html"><img alt="Stivaletti" data-src="../img/44724594VU_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/decollete_cod44726148aq.html"><img alt="Décolleté" data-src="../img/44726148AQ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44719629nt.html"><img alt="Mocassini" data-src="../img/44719629NT_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44725329kq.html"><img alt="Mocassini" data-src="../img/44725329KQ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivali_cod44724026qs.html"><img alt="Stivali" data-src="../img/44724026QS_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44720256gw.html"><img alt="Stivaletti" data-src="../img/44720256GW_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44722062id.html"><img alt="Stivaletti" data-src="../img/44722062ID_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44722402rh.html"><img alt="Mocassini" data-src="../img/44722402RH_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44726296vu.html"><img alt="Stivaletti" data-src="../img/44726296VU_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44725755ct.html"><img alt="Stivaletti" data-src="../img/44725755CT_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44725348nv.html"><img alt="Stivaletti" data-src="../img/44725348NV_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44721879xx.html"><img alt="Stivaletti" data-src="../img/44721879XX_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/cuissardes_cod44729472iq.html"><img alt="Cuissardes" data-src="../img/44729472IQ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/decollete_cod44725388jv.html"><img alt="Décolleté" data-src="../img/44725388JV_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/stivaletti_cod44721854ce.html"><img alt="Stivaletti" data-src="../img/44721854CE_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-basse_cod44727690jp.html"><img alt="Sneakers &amp; Tennis shoes basse" data-src="../img/44727690JP_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44727501hh.html"><img alt="Mocassini" data-src="../img/44727501HH_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/sneakers-tennis-shoes-basse_cod44727038aq.html"><img alt="Sneakers &amp; Tennis shoes basse" data-src="../img/44727038AQ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44704882bq.html"><img alt="Mocassini" data-src="../img/44704882BQ_15_a.jpg" width="220" height="280"></a>
</li>
<li>
<a href="#/it/donna/mocassini_cod44734002vc.html"><img alt="Mocassini" data-src="../img/44734002VC_15_a.jpg" width="220" height="280"></a>
</li>
</ul>
</div>
<button type="button" id="loadAll">
LOAD ALL
</button>
<script src="../dist/lazyload.js"></script>
<script>
(function () {
function logElementEvent(eventName, element) {
console.log(new Date().getTime(), eventName, element.getAttribute('data-src'));
}

ll = new LazyLoad({
callback_load: function (element) {
logElementEvent("LOADED", element);
},
callback_set: function (element) {
logElementEvent("SET", element);
}
});

var loadAllButton = document.getElementById('loadAll');

loadAllButton.addEventListener('click', () => {
ll.loadAll();
loadAllButton.disabled = true;
});
}());
</script>
</body>

</html>
8 changes: 6 additions & 2 deletions dist/lazyload.es2015.js
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ LazyLoad.prototype = {
callCallback(settings.callback_set, element);
},

_loopThroughElements: function () {
_loopThroughElements: function (forceDownload) {
const settings = this._settings,
elements = this._elements,
elementsLength = (!elements) ? 0 : elements.length;
Expand All @@ -248,7 +248,7 @@ LazyLoad.prototype = {
continue;
}

if (isBot || isInsideViewport(element, settings.container, settings.threshold)) {
if (isBot || forceDownload || isInsideViewport(element, settings.container, settings.threshold)) {
if (firstLoop) {
addClass(element, settings.class_initial);
}
Expand Down Expand Up @@ -336,6 +336,10 @@ LazyLoad.prototype = {
}
},

loadAll: function() {
this._loopThroughElements(true);
},

update: function () {
// Converts to array the nodeset obtained querying the DOM from _queryOriginNode with elements_selector
this._elements = Array.prototype.slice.call(this._queryOriginNode.querySelectorAll(this._settings.elements_selector));
Expand Down
8 changes: 6 additions & 2 deletions dist/lazyload.js
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
callCallback(settings.callback_set, element);
},

_loopThroughElements: function _loopThroughElements() {
_loopThroughElements: function _loopThroughElements(forceDownload) {
var settings = this._settings,
elements = this._elements,
elementsLength = !elements ? 0 : elements.length;
Expand All @@ -252,7 +252,7 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
continue;
}

if (isBot || isInsideViewport(element, settings.container, settings.threshold)) {
if (isBot || forceDownload || isInsideViewport(element, settings.container, settings.threshold)) {
if (firstLoop) {
addClass(element, settings.class_initial);
}
Expand Down Expand Up @@ -340,6 +340,10 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
}
},

loadAll: function loadAll() {
this._loopThroughElements(true);
},

update: function update() {
// Converts to array the nodeset obtained querying the DOM from _queryOriginNode with elements_selector
this._elements = Array.prototype.slice.call(this._queryOriginNode.querySelectorAll(this._settings.elements_selector));
Expand Down
Loading

0 comments on commit c9dd189

Please sign in to comment.