|
1 | | -(function (root) { |
| 1 | +!(function (root) { |
2 | 2 |
|
3 | 3 | var tmpl_cache = {}; |
4 | 4 | var resp_cache = {}; |
|
107 | 107 | } |
108 | 108 | elem.setAttribute('qkr', ""); |
109 | 109 | $(elem).removeAttr("qkr-attr").find("[qkr-attr]").removeAttr("qkr-attr"); |
| 110 | + |
110 | 111 | }; |
111 | 112 |
|
112 | 113 | if (apis.length > 0) { |
|
125 | 126 | } |
126 | 127 | }; |
127 | 128 |
|
128 | | - $(document).ready(function () { |
129 | | - $('[qkr="tmpl"]').each(function (i, elem) { |
| 129 | + quikr.init = function(){ |
| 130 | + $('[qkr="tmpl"]').each(function (i, elem) { |
130 | 131 | quikr.applyTmpl(elem); |
131 | 132 | }); |
132 | 133 | $("body").on("click", '[qkr="action"]', function (e) { |
|
154 | 155 | } else { |
155 | 156 | callback(data); |
156 | 157 | } |
157 | | - |
158 | 158 | }); |
159 | | - }); |
| 159 | + }; |
| 160 | + |
160 | 161 | quikr.action("qkr-reload", function (data) { |
161 | 162 | var tmpl = this.getAttribute("qkr-tmpl"); |
162 | 163 | quikr.applyTmpl(document.getElementById(tmpl)); |
163 | 164 | }); |
| 165 | + |
| 166 | + function loadImage (el, fn) { |
| 167 | + var img = new Image() |
| 168 | + , src = el.getAttribute('data-src'); |
| 169 | + img.onload = function() { |
| 170 | + if (!! el.parent) |
| 171 | + el.parent.replaceChild(img, el) |
| 172 | + else |
| 173 | + el.src = src; |
| 174 | + |
| 175 | + fn? fn() : null; |
| 176 | + } |
| 177 | + img.src = src; |
| 178 | + } |
| 179 | + |
| 180 | + function elementInViewport(el) { |
| 181 | + var rect = el.getBoundingClientRect() |
| 182 | + |
| 183 | + return ( |
| 184 | + rect.top >= 0 |
| 185 | + && rect.left >= 0 |
| 186 | + && rect.top <= (window.innerHeight || document.documentElement.clientHeight) |
| 187 | + ) |
| 188 | + } |
| 189 | + |
| 190 | + var loadLazyImages = function(){ |
| 191 | + images = $('img[data-src]') |
| 192 | + for (var i = 0; i < images.length; i++) { |
| 193 | + if (elementInViewport(images[i])) { |
| 194 | + loadImage(images[i], function () { |
| 195 | + //images.splice(i, i); |
| 196 | + }); |
| 197 | + } |
| 198 | + }; |
| 199 | + }; |
| 200 | + quikr.loadLazyImages = loadLazyImages; |
| 201 | + |
164 | 202 | root.quikr = quikr; |
165 | 203 | })(this); |
0 commit comments