@oxiaom/adoremix-linux-x64 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/index.js +24 -0
  2. package/native/.adoremix-native.json +1 -0
  3. package/native/AdoreMixV8.0.17_console_linuxx64 +0 -0
  4. package/native/README.md +20 -0
  5. package/native/audio/libqtaudio_alsa.so +0 -0
  6. package/native/audio/libqtmedia_pulse.so +0 -0
  7. package/native/bearer/libqconnmanbearer.so +0 -0
  8. package/native/bearer/libqgenericbearer.so +0 -0
  9. package/native/bearer/libqnmbearer.so +0 -0
  10. package/native/etc/Demo1.ini +49 -0
  11. package/native/etc/docroot/bangzhu/.project +22 -0
  12. package/native/etc/docroot/bangzhu/css/app.css +21 -0
  13. package/native/etc/docroot/bangzhu/css/feedback.css +131 -0
  14. package/native/etc/docroot/bangzhu/css/icons-extra.css +63 -0
  15. package/native/etc/docroot/bangzhu/css/mui.dtpicker.css +136 -0
  16. package/native/etc/docroot/bangzhu/css/mui.imageviewer.css +123 -0
  17. package/native/etc/docroot/bangzhu/css/mui.indexedlist.css +112 -0
  18. package/native/etc/docroot/bangzhu/css/mui.listpicker.css +95 -0
  19. package/native/etc/docroot/bangzhu/css/mui.min.css +5 -0
  20. package/native/etc/docroot/bangzhu/css/mui.picker.all.css +285 -0
  21. package/native/etc/docroot/bangzhu/css/mui.picker.css +85 -0
  22. package/native/etc/docroot/bangzhu/css/mui.picker.min.css +7 -0
  23. package/native/etc/docroot/bangzhu/css/mui.poppicker.css +64 -0
  24. package/native/etc/docroot/bangzhu/examples/accordion.html +125 -0
  25. package/native/etc/docroot/bangzhu/examples/actionsheet-plus.html +128 -0
  26. package/native/etc/docroot/bangzhu/examples/actionsheet.html +153 -0
  27. package/native/etc/docroot/bangzhu/examples/ad.html +47 -0
  28. package/native/etc/docroot/bangzhu/examples/ajax.html +155 -0
  29. package/native/etc/docroot/bangzhu/examples/badges.html +54 -0
  30. package/native/etc/docroot/bangzhu/examples/beecloud.html +150 -0
  31. package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/detail.html +104 -0
  32. package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/list-to-detail.css +160 -0
  33. package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/listview.html +326 -0
  34. package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/vue.min.js +8 -0
  35. package/native/etc/docroot/bangzhu/examples/buttons-with-badges.html +48 -0
  36. package/native/etc/docroot/bangzhu/examples/buttons-with-block.html +50 -0
  37. package/native/etc/docroot/bangzhu/examples/buttons-with-icons.html +68 -0
  38. package/native/etc/docroot/bangzhu/examples/buttons-with-loading.html +86 -0
  39. package/native/etc/docroot/bangzhu/examples/buttons.html +89 -0
  40. package/native/etc/docroot/bangzhu/examples/card.html +97 -0
  41. package/native/etc/docroot/bangzhu/examples/checkbox.html +68 -0
  42. package/native/etc/docroot/bangzhu/examples/clouddb_wilddog.html +268 -0
  43. package/native/etc/docroot/bangzhu/examples/date.html +88 -0
  44. package/native/etc/docroot/bangzhu/examples/dialog.html +82 -0
  45. package/native/etc/docroot/bangzhu/examples/dtpicker.html +129 -0
  46. package/native/etc/docroot/bangzhu/examples/echarts.html +150 -0
  47. package/native/etc/docroot/bangzhu/examples/feedback.html +72 -0
  48. package/native/etc/docroot/bangzhu/examples/grid-default.html +61 -0
  49. package/native/etc/docroot/bangzhu/examples/grid-pagination.html +266 -0
  50. package/native/etc/docroot/bangzhu/examples/guide.html +269 -0
  51. package/native/etc/docroot/bangzhu/examples/icons-extra.html +161 -0
  52. package/native/etc/docroot/bangzhu/examples/icons.html +182 -0
  53. package/native/etc/docroot/bangzhu/examples/im-chat.html +711 -0
  54. package/native/etc/docroot/bangzhu/examples/imageviewer-native.html +90 -0
  55. package/native/etc/docroot/bangzhu/examples/imageviewer.html +197 -0
  56. package/native/etc/docroot/bangzhu/examples/indexed-list-select.html +459 -0
  57. package/native/etc/docroot/bangzhu/examples/indexed-list.html +265 -0
  58. package/native/etc/docroot/bangzhu/examples/info.html +119 -0
  59. package/native/etc/docroot/bangzhu/examples/input.html +108 -0
  60. package/native/etc/docroot/bangzhu/examples/lazyload-image.html +73 -0
  61. package/native/etc/docroot/bangzhu/examples/list-triplex-row.html +115 -0
  62. package/native/etc/docroot/bangzhu/examples/list-with-input.html +91 -0
  63. package/native/etc/docroot/bangzhu/examples/locker-dom.html +85 -0
  64. package/native/etc/docroot/bangzhu/examples/login.html +83 -0
  65. package/native/etc/docroot/bangzhu/examples/media-list.html +220 -0
  66. package/native/etc/docroot/bangzhu/examples/message-bottom.html +87 -0
  67. package/native/etc/docroot/bangzhu/examples/modals.html +45 -0
  68. package/native/etc/docroot/bangzhu/examples/nav-nativeObj.html +45 -0
  69. package/native/etc/docroot/bangzhu/examples/nav.html +135 -0
  70. package/native/etc/docroot/bangzhu/examples/nav_transparent.html +127 -0
  71. package/native/etc/docroot/bangzhu/examples/nav_transparent_native.html +121 -0
  72. package/native/etc/docroot/bangzhu/examples/numbox.html +114 -0
  73. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-down.html +384 -0
  74. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-left-plus-main.html +293 -0
  75. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-left-plus-menu.html +102 -0
  76. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-left.html +228 -0
  77. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-right-plus-main.html +292 -0
  78. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-right-plus-menu.html +111 -0
  79. package/native/etc/docroot/bangzhu/examples/offcanvas-drag-right.html +220 -0
  80. package/native/etc/docroot/bangzhu/examples/pagination.html +236 -0
  81. package/native/etc/docroot/bangzhu/examples/picker.html +159 -0
  82. package/native/etc/docroot/bangzhu/examples/popovers.html +200 -0
  83. package/native/etc/docroot/bangzhu/examples/progressbar.html +171 -0
  84. package/native/etc/docroot/bangzhu/examples/pullrefresh.html +86 -0
  85. package/native/etc/docroot/bangzhu/examples/pullrefresh_main.html +46 -0
  86. package/native/etc/docroot/bangzhu/examples/pullrefresh_sub.html +101 -0
  87. package/native/etc/docroot/bangzhu/examples/pullrefresh_with_tab.html +586 -0
  88. package/native/etc/docroot/bangzhu/examples/radio.html +93 -0
  89. package/native/etc/docroot/bangzhu/examples/range.html +89 -0
  90. package/native/etc/docroot/bangzhu/examples/setting.html +910 -0
  91. package/native/etc/docroot/bangzhu/examples/slider-default.html +98 -0
  92. package/native/etc/docroot/bangzhu/examples/slider-native.html +43 -0
  93. package/native/etc/docroot/bangzhu/examples/slider-table-default.html +62 -0
  94. package/native/etc/docroot/bangzhu/examples/slider-table-pagination.html +74 -0
  95. package/native/etc/docroot/bangzhu/examples/slider-with-title.html +99 -0
  96. package/native/etc/docroot/bangzhu/examples/switches.html +92 -0
  97. package/native/etc/docroot/bangzhu/examples/tab-top-subpage-1.html +131 -0
  98. package/native/etc/docroot/bangzhu/examples/tab-top-subpage-2.html +131 -0
  99. package/native/etc/docroot/bangzhu/examples/tab-top-subpage-3.html +56 -0
  100. package/native/etc/docroot/bangzhu/examples/tab-top-subpage-4.html +110 -0
  101. package/native/etc/docroot/bangzhu/examples/tab-top-subpage-5.html +131 -0
  102. package/native/etc/docroot/bangzhu/examples/tab-top-webview-main.html +183 -0
  103. package/native/etc/docroot/bangzhu/examples/tab-vertical-scroll.html +170 -0
  104. package/native/etc/docroot/bangzhu/examples/tab-webview-main.html +112 -0
  105. package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-about.html +38 -0
  106. package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-chat.html +127 -0
  107. package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-contact.html +155 -0
  108. package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-setting.html +79 -0
  109. package/native/etc/docroot/bangzhu/examples/tab-with-segmented-control-vertical.html +85 -0
  110. package/native/etc/docroot/bangzhu/examples/tab-with-segmented-control.html +195 -0
  111. package/native/etc/docroot/bangzhu/examples/tab-with-viewpagerindicator.html +203 -0
  112. package/native/etc/docroot/bangzhu/examples/tabbar-labels-only.html +44 -0
  113. package/native/etc/docroot/bangzhu/examples/tabbar-with-submenus.html +75 -0
  114. package/native/etc/docroot/bangzhu/examples/tabbar.html +247 -0
  115. package/native/etc/docroot/bangzhu/examples/tableviews-with-badges.html +78 -0
  116. package/native/etc/docroot/bangzhu/examples/tableviews-with-collapses.html +83 -0
  117. package/native/etc/docroot/bangzhu/examples/tableviews-with-swipe.html +184 -0
  118. package/native/etc/docroot/bangzhu/examples/tableviews.html +87 -0
  119. package/native/etc/docroot/bangzhu/examples/typography.html +41 -0
  120. package/native/etc/docroot/bangzhu/fonts/mui-icons-extra.ttf +0 -0
  121. package/native/etc/docroot/bangzhu/fonts/mui.ttf +0 -0
  122. package/native/etc/docroot/bangzhu/images/60x60.gif +0 -0
  123. package/native/etc/docroot/bangzhu/images/cbd.jpg +0 -0
  124. package/native/etc/docroot/bangzhu/images/login-1.png +0 -0
  125. package/native/etc/docroot/bangzhu/images/logo.png +0 -0
  126. package/native/etc/docroot/bangzhu/images/muwu.jpg +0 -0
  127. package/native/etc/docroot/bangzhu/images/qrcode.png +0 -0
  128. package/native/etc/docroot/bangzhu/images/shuijiao.jpg +0 -0
  129. package/native/etc/docroot/bangzhu/images/yuantiao.jpg +0 -0
  130. package/native/etc/docroot/bangzhu/index-menu.html +196 -0
  131. package/native/etc/docroot/bangzhu/index.html +414 -0
  132. package/native/etc/docroot/bangzhu/js/95516.js +32 -0
  133. package/native/etc/docroot/bangzhu/js/arttmpl.js +2 -0
  134. package/native/etc/docroot/bangzhu/js/beecloud.js +141 -0
  135. package/native/etc/docroot/bangzhu/js/city.data-3.js +11548 -0
  136. package/native/etc/docroot/bangzhu/js/city.data.js +1605 -0
  137. package/native/etc/docroot/bangzhu/js/feedback.js +234 -0
  138. package/native/etc/docroot/bangzhu/js/mui.dtpicker.js +471 -0
  139. package/native/etc/docroot/bangzhu/js/mui.imageViewer.js +268 -0
  140. package/native/etc/docroot/bangzhu/js/mui.indexedlist.js +187 -0
  141. package/native/etc/docroot/bangzhu/js/mui.js +8390 -0
  142. package/native/etc/docroot/bangzhu/js/mui.lazyload.img.js +116 -0
  143. package/native/etc/docroot/bangzhu/js/mui.lazyload.js +327 -0
  144. package/native/etc/docroot/bangzhu/js/mui.listpicker.js +399 -0
  145. package/native/etc/docroot/bangzhu/js/mui.locker.js +303 -0
  146. package/native/etc/docroot/bangzhu/js/mui.min.js +6 -0
  147. package/native/etc/docroot/bangzhu/js/mui.picker.all.js +1018 -0
  148. package/native/etc/docroot/bangzhu/js/mui.picker.js +389 -0
  149. package/native/etc/docroot/bangzhu/js/mui.picker.min.js +7 -0
  150. package/native/etc/docroot/bangzhu/js/mui.poppicker.js +160 -0
  151. package/native/etc/docroot/bangzhu/js/mui.previewimage.js +382 -0
  152. package/native/etc/docroot/bangzhu/js/mui.pullToRefresh.js +407 -0
  153. package/native/etc/docroot/bangzhu/js/mui.pullToRefresh.material.js +352 -0
  154. package/native/etc/docroot/bangzhu/js/mui.view.js +628 -0
  155. package/native/etc/docroot/bangzhu/js/mui.zoom.js +322 -0
  156. package/native/etc/docroot/bangzhu/js/update.js +45 -0
  157. package/native/etc/docroot/bangzhu/js/webviewGroup.js +286 -0
  158. package/native/etc/docroot/bangzhu/libs/echarts-all.js +35 -0
  159. package/native/etc/docroot/bangzhu/manifest.json +994 -0
  160. package/native/etc/docroot/index.html +1 -0
  161. package/native/etc/docroot/luyin2/index.html +145 -0
  162. package/native/etc/docroot/luyin2/js/jquery-1.10.1.min.js +6 -0
  163. package/native/etc/docroot/luyin2/js/jquery-1.5.min.js +16 -0
  164. package/native/etc/docroot/luyin2/js/jquery.js +18 -0
  165. package/native/etc/docroot/luyin2/js/jquery.multiselect.js +104 -0
  166. package/native/etc/docroot/luyin2/js/lame.min.js +308 -0
  167. package/native/etc/docroot/luyin2/js/recordmp3.js +239 -0
  168. package/native/etc/docroot/luyin2/js/worker-realtime.js +106 -0
  169. package/native/etc/docroot/luyin2//346/223/215/344/275/234/346/214/207/345/215/227.txt +3 -0
  170. package/native/etc/docroot/static/css/app.8421a6d597ba48619941ccd4e386fbb2.css +675 -0
  171. package/native/etc/docroot/static/css/app.8421a6d597ba48619941ccd4e386fbb2.css.map +1 -0
  172. package/native/etc/docroot/static/fonts/element-icons.535877f.woff +0 -0
  173. package/native/etc/docroot/static/fonts/element-icons.732389d.ttf +0 -0
  174. package/native/etc/docroot/static/img/login_bg.ad6b482.jpg +0 -0
  175. package/native/etc/docroot/static/js/app.eff1c2200a448936b027.js +2 -0
  176. package/native/etc/docroot/static/js/app.eff1c2200a448936b027.js.map +1 -0
  177. package/native/etc/docroot/static/js/manifest.400eada2d24447a4fc30.js +2 -0
  178. package/native/etc/docroot/static/js/manifest.400eada2d24447a4fc30.js.map +1 -0
  179. package/native/etc/docroot/static/js/vendor.ca4f735ec1dfe336a804.js +45 -0
  180. package/native/etc/docroot/static/js/vendor.ca4f735ec1dfe336a804.js.map +1 -0
  181. package/native/etc/docroot/tts.js +151 -0
  182. package/native/etc/docroot/xcx/Discover.html +156 -0
  183. package/native/etc/docroot/xcx/css/mui.css +5649 -0
  184. package/native/etc/docroot/xcx/css/mui.min.css +5 -0
  185. package/native/etc/docroot/xcx/devicelist.html +659 -0
  186. package/native/etc/docroot/xcx/fonts/mui.ttf +0 -0
  187. package/native/etc/docroot/xcx/index.html +75 -0
  188. package/native/etc/docroot/xcx/index.js +1 -0
  189. package/native/etc/docroot/xcx/js/axios.min.js +3 -0
  190. package/native/etc/docroot/xcx/js/axios.min.map +1 -0
  191. package/native/etc/docroot/xcx/js/js.cookie.js +8 -0
  192. package/native/etc/docroot/xcx/js/mui.js +8390 -0
  193. package/native/etc/docroot/xcx/js/mui.min.js +6 -0
  194. package/native/etc/docroot/xcx/main.html +85 -0
  195. package/native/etc/ssl/README.txt +5 -0
  196. package/native/etc/ssl/ca.crt +21 -0
  197. package/native/etc/ssl/ca.key +27 -0
  198. package/native/etc/ssl/client.crt +20 -0
  199. package/native/etc/ssl/client.key +28 -0
  200. package/native/etc/ssl/client.p12 +0 -0
  201. package/native/etc/ssl/server.crt +20 -0
  202. package/native/etc/ssl/server.key +28 -0
  203. package/native/etc/templates/demo-de.tpl +12 -0
  204. package/native/etc/templates/demo.tpl +12 -0
  205. package/native/etc/ttys/adore03.sql +426 -0
  206. package/native/etc/ttys/adore04.sql +426 -0
  207. package/native/etc/ttys/adore1.sql +859 -0
  208. package/native/etc/ttys/adore_mix22.sql +806 -0
  209. package/native/etc/ttys/sqlite.sql +1140 -0
  210. package/native/etc/ttys/sqlite3main.sql +434 -0
  211. package/native/etc/ttys/sqltest.sql +279 -0
  212. package/native/etc/ttys/tp3sql.sql +1412 -0
  213. package/native/find.js +529 -0
  214. package/native/findsc.js +701 -0
  215. package/native/iconengines/libqsvgicon.so +0 -0
  216. package/native/imageformats/libqgif.so +0 -0
  217. package/native/imageformats/libqico.so +0 -0
  218. package/native/imageformats/libqjpeg.so +0 -0
  219. package/native/imageformats/libqsvg.so +0 -0
  220. package/native/lib/libQt5Concurrent.so.5 +0 -0
  221. package/native/lib/libQt5Core.so.5 +0 -0
  222. package/native/lib/libQt5DBus.so.5 +0 -0
  223. package/native/lib/libQt5Multimedia.so.5 +0 -0
  224. package/native/lib/libQt5MultimediaGstTools.so.5 +0 -0
  225. package/native/lib/libQt5Network.so.5 +0 -0
  226. package/native/lib/libQt5Sql.so.5 +0 -0
  227. package/native/lib/libQt5Svg.so.5 +0 -0
  228. package/native/lib/libQt5WebSockets.so.5 +0 -0
  229. package/native/lib/libQt5Xml.so.5 +0 -0
  230. package/native/lib/libcrypto.so.3 +0 -0
  231. package/native/lib/libgcc_s.so.1 +0 -0
  232. package/native/lib/libmariadb.so.3 +0 -0
  233. package/native/lib/libmp3lame.so.0 +0 -0
  234. package/native/lib/libmp3lame.so.0.0.0 +0 -0
  235. package/native/lib/libopus.so.0 +0 -0
  236. package/native/lib/libopus.so.0.8.0 +0 -0
  237. package/native/lib/libopusfile.so.0 +0 -0
  238. package/native/lib/libopusfile.so.0.4.2 +0 -0
  239. package/native/lib/libopusurl.so.0 +0 -0
  240. package/native/lib/libopusurl.so.0.4.2 +0 -0
  241. package/native/lib/libsqlite3.so.0 +0 -0
  242. package/native/lib/libsqlite3.so.0.8.6 +0 -0
  243. package/native/lib/libssl.so.3 +0 -0
  244. package/native/lib/libstdc++.so.6 +0 -0
  245. package/native/lib/libstdc++.so.6.0.30 +0 -0
  246. package/native/mediaservice/libgstaudiodecoder.so +0 -0
  247. package/native/mediaservice/libgstcamerabin.so +0 -0
  248. package/native/mediaservice/libgstmediacapture.so +0 -0
  249. package/native/mediaservice/libgstmediaplayer.so +0 -0
  250. package/native/platforms/libqeglfs.so +0 -0
  251. package/native/platforms/libqlinuxfb.so +0 -0
  252. package/native/platforms/libqminimal.so +0 -0
  253. package/native/platforms/libqminimalegl.so +0 -0
  254. package/native/platforms/libqoffscreen.so +0 -0
  255. package/native/platforms/libqvnc.so +0 -0
  256. package/native/platforms/libqxcb.so +0 -0
  257. package/native/qt.conf +3 -0
  258. package/native/sqldrivers/libqsqlite.so +0 -0
  259. package/native/sqldrivers/libqsqlmysql.so +0 -0
  260. package/native/sqldrivers/libsqlitecipher.so +0 -0
  261. package/native/tts.js +151 -0
  262. package/package.json +23 -0
@@ -0,0 +1,116 @@
1
+ (function($, window, document) {
2
+ var ImageLazyload = $.Lazyload.extend({
3
+ init: function(element, options) {
4
+ this._super(element, options);
5
+ },
6
+ _init: function() {
7
+ this.options.selector = '[data-lazyload]';
8
+ this._super();
9
+ },
10
+ _set: function(element, uri) {
11
+ if (element.tagName === 'IMG') {
12
+ element.src = uri;
13
+ } else {
14
+ element.style.backgroundImage = "url(" + uri + ")";
15
+ }
16
+ },
17
+ _hasPlaceholder: function(element) {
18
+ if (element.offsetWidth) {
19
+ if (element.tagName === 'IMG') {
20
+ return !!element.src;
21
+ } else {
22
+ return !!element.style.backgroundImage;
23
+ }
24
+ }
25
+ return false;
26
+ },
27
+ _addPlaceHolder: function(element) {
28
+ var self = this;
29
+ if (element.tagName === 'IMG') {
30
+ self._counter++;
31
+ element.onload = function() {
32
+ self._counter--;
33
+ self.addCallback(element, self.handle);
34
+ this.onload = null;
35
+ };
36
+ self.onPlaceHolder(function(placeholder) {
37
+ self._set(element, placeholder);
38
+ });
39
+ } else {
40
+ element.style.backgroundImage = "url(" + self.options.placeholder + ")";
41
+ }
42
+ },
43
+ addElement: function(element) {
44
+ var self = this;
45
+ var uri = element.getAttribute('data-lazyload');
46
+ if (uri) {
47
+ if (self._hasPlaceholder(element)) {
48
+ self.addCallback(element, self.handle);
49
+ } else {
50
+ self.onPlaceHolder = self._createLoader(function(callback) {
51
+ var img = new Image();
52
+ var placeholder = self.options.placeholder;
53
+ img.src = placeholder;
54
+ img.onload = img.onerror = function() {
55
+ callback(placeholder);
56
+ };
57
+ });
58
+ self._addPlaceHolder(element);
59
+ }
60
+ return true;
61
+ }
62
+ return false;
63
+ },
64
+ set: function(element, uri) {
65
+ var self = this;
66
+ var img = new Image();
67
+ img.onload = function() {
68
+ self._set(element, uri);
69
+ $.trigger(self.element, 'success', {
70
+ element: element,
71
+ uri: uri
72
+ });
73
+ };
74
+ img.onerror = function() {
75
+ $.trigger(self.element, 'error', {
76
+ element: element,
77
+ uri: uri
78
+ });
79
+ };
80
+ img.src = uri;
81
+ element.removeAttribute('data-lazyload'); //只尝试一次,后续可能支持多次尝试
82
+ },
83
+ handle: function(element, key) {
84
+ var uri = element.getAttribute('data-lazyload');
85
+ if (uri) {
86
+ this.set(element, uri);
87
+ //element.parentNode.parentNode.setAttribute('data-lazyload', 'true'); //debug
88
+ }
89
+ },
90
+ destroy: function() {
91
+ this._super();
92
+ this.element.removeAttribute('data-imageLazyload');
93
+ }
94
+
95
+ });
96
+ $.fn.imageLazyload = function(options) {
97
+ var lazyloadApis = [];
98
+ this.each(function() {
99
+ var self = this;
100
+ var lazyloadApi = null;
101
+ if (self === document || self === window) {
102
+ self = document.body;
103
+ }
104
+ var id = self.getAttribute('data-imageLazyload');
105
+ if (!id) {
106
+ id = ++$.uuid;
107
+ $.data[id] = lazyloadApi = new ImageLazyload(self, options);
108
+ self.setAttribute('data-imageLazyload', id);
109
+ } else {
110
+ lazyloadApi = $.data[id];
111
+ }
112
+ lazyloadApis.push(lazyloadApi);
113
+ });
114
+ return lazyloadApis.length === 1 ? lazyloadApis[0] : lazyloadApis;
115
+ }
116
+ })(mui, window, document);
@@ -0,0 +1,327 @@
1
+ (function($, window, document) {
2
+ var mid = 0;
3
+ $.Lazyload = $.Class.extend({
4
+ init: function(element, options) {
5
+ var self = this;
6
+ this.container = this.element = element;
7
+ // placeholder //默认图片
8
+ this.options = $.extend({
9
+ selector: '', //查询哪些元素需要lazyload
10
+ diff: false, //距离视窗底部多少像素出发lazyload
11
+ force: false, //强制加载(不论元素是否在是视窗内)
12
+ autoDestroy: true, //元素加载完后是否自动销毁当前插件对象
13
+ duration: 100 //滑动停止多久后开始加载
14
+ }, options);
15
+
16
+ this._key = 0;
17
+ this._containerIsNotDocument = this.container.nodeType !== 9;
18
+ this._callbacks = {};
19
+
20
+ this._init();
21
+ },
22
+ _init: function() {
23
+ this._initLoadFn();
24
+
25
+ this.addElements();
26
+
27
+ this._loadFn();
28
+
29
+ $.ready(function() {
30
+ this._loadFn();
31
+ }.bind(this));
32
+
33
+ this.resume();
34
+ },
35
+ _initLoadFn: function() {
36
+ var self = this;
37
+ self._loadFn = this._buffer(function() { // 加载延迟项
38
+ if(self.options.autoDestroy && self._counter == 0 && $.isEmptyObject(self._callbacks)) {
39
+ self.destroy();
40
+ }
41
+ self._loadItems();
42
+ }, self.options.duration, self);
43
+ },
44
+ /**
45
+ *根据加载函数实现加载器
46
+ *@param {Function} load 加载函数
47
+ *@returns {Function} 加载器
48
+ */
49
+ _createLoader: function(load) {
50
+ var value, loading, handles = [],
51
+ h;
52
+ return function(handle) {
53
+ if(!loading) {
54
+ loading = true;
55
+ load(function(v) {
56
+ value = v;
57
+ while(h = handles.shift()) {
58
+ try {
59
+ h && h.apply(null, [value]);
60
+ } catch(e) {
61
+ setTimeout(function() {
62
+ throw e;
63
+ }, 0)
64
+ }
65
+ }
66
+ })
67
+ }
68
+ if(value) {
69
+ handle && handle.apply(null, [value]);
70
+ return value;
71
+ }
72
+ handle && handles.push(handle);
73
+ return value;
74
+ }
75
+ },
76
+ _buffer: function(fn, ms, context) {
77
+ var timer;
78
+ var lastStart = 0;
79
+ var lastEnd = 0;
80
+ var ms = ms || 150;
81
+
82
+ function run() {
83
+ if(timer) {
84
+ timer.cancel();
85
+ timer = 0;
86
+ }
87
+ lastStart = $.now();
88
+ fn.apply(context || this, arguments);
89
+ lastEnd = $.now();
90
+ }
91
+
92
+ return $.extend(function() {
93
+ if(
94
+ (!lastStart) || // 从未运行过
95
+ (lastEnd >= lastStart && $.now() - lastEnd > ms) || // 上次运行成功后已经超过ms毫秒
96
+ (lastEnd < lastStart && $.now() - lastStart > ms * 8) // 上次运行或未完成,后8*ms毫秒
97
+ ) {
98
+ run();
99
+ } else {
100
+ if(timer) {
101
+ timer.cancel();
102
+ }
103
+ timer = $.later(run, ms, null, arguments);
104
+ }
105
+ }, {
106
+ stop: function() {
107
+ if(timer) {
108
+ timer.cancel();
109
+ timer = 0;
110
+ }
111
+ }
112
+ });
113
+ },
114
+ _getBoundingRect: function(c) {
115
+ var vh, vw, left, top;
116
+
117
+ if(c !== undefined) {
118
+ vh = c.offsetHeight;
119
+ vw = c.offsetWidth;
120
+ var offset = $.offset(c);
121
+ left = offset.left;
122
+ top = offset.top;
123
+ } else {
124
+ vh = window.innerHeight;
125
+ vw = window.innerWidth;
126
+ left = 0;
127
+ top = window.pageYOffset;
128
+ }
129
+
130
+ var diff = this.options.diff;
131
+
132
+ var diffX = diff === false ? vw : diff;
133
+ var diffX0 = 0;
134
+ var diffX1 = diffX;
135
+
136
+ var diffY = diff === false ? vh : diff;
137
+ var diffY0 = 0;
138
+ var diffY1 = diffY;
139
+
140
+ var right = left + vw;
141
+ var bottom = top + vh;
142
+
143
+ left -= diffX0;
144
+ right += diffX1;
145
+ top -= diffY0;
146
+ bottom += diffY1;
147
+ return {
148
+ left: left,
149
+ top: top,
150
+ right: right,
151
+ bottom: bottom
152
+ };
153
+ },
154
+ _cacheWidth: function(el) {
155
+ if(el._mui_lazy_width) {
156
+ return el._mui_lazy_width;
157
+ }
158
+ return el._mui_lazy_width = el.offsetWidth;
159
+ },
160
+ _cacheHeight: function(el) {
161
+ if(el._mui_lazy_height) {
162
+ return el._mui_lazy_height;
163
+ }
164
+ return el._mui_lazy_height = el.offsetHeight;
165
+ },
166
+ _isCross: function(r1, r2) {
167
+ var r = {};
168
+ r.top = Math.max(r1.top, r2.top);
169
+ r.bottom = Math.min(r1.bottom, r2.bottom);
170
+ r.left = Math.max(r1.left, r2.left);
171
+ r.right = Math.min(r1.right, r2.right);
172
+ return r.bottom >= r.top && r.right >= r.left;
173
+ },
174
+ _elementInViewport: function(elem, windowRegion, containerRegion) {
175
+ // display none or inside display none
176
+ if(!elem.offsetWidth) {
177
+ return false;
178
+ }
179
+ var elemOffset = $.offset(elem);
180
+ var inContainer = true;
181
+ var inWin;
182
+ var left = elemOffset.left;
183
+ var top = elemOffset.top;
184
+ var elemRegion = {
185
+ left: left,
186
+ top: top,
187
+ right: left + this._cacheWidth(elem),
188
+ bottom: top + this._cacheHeight(elem)
189
+ };
190
+
191
+ inWin = this._isCross(windowRegion, elemRegion);
192
+
193
+ if(inWin && containerRegion) {
194
+ inContainer = this._isCross(containerRegion, elemRegion);
195
+ }
196
+ // 确保在容器内出现
197
+ // 并且在视窗内也出现
198
+ return inContainer && inWin;
199
+ },
200
+ _loadItems: function() {
201
+ var self = this;
202
+ // container is display none
203
+ if(self._containerIsNotDocument && !self.container.offsetWidth) {
204
+ return;
205
+ }
206
+ self._windowRegion = self._getBoundingRect();
207
+
208
+ if(self._containerIsNotDocument) {
209
+ self._containerRegion = self._getBoundingRect(this.container);
210
+ }
211
+ $.each(self._callbacks, function(key, callback) {
212
+ callback && self._loadItem(key, callback);
213
+ });
214
+ },
215
+ _loadItem: function(key, callback) {
216
+ var self = this;
217
+ callback = callback || self._callbacks[key];
218
+ if(!callback) {
219
+ return true;
220
+ }
221
+ var el = callback.el;
222
+ var remove = false;
223
+ var fn = callback.fn;
224
+ if(self.options.force || self._elementInViewport(el, self._windowRegion, self._containerRegion)) {
225
+ try {
226
+ remove = fn.call(self, el, key);
227
+ } catch(e) {
228
+ setTimeout(function() {
229
+ throw e;
230
+ }, 0);
231
+ }
232
+ }
233
+ if(remove !== false) {
234
+ delete self._callbacks[key];
235
+ }
236
+ return remove;
237
+ },
238
+ addCallback: function(el, fn) {
239
+ var self = this;
240
+ var callbacks = self._callbacks;
241
+ var callback = {
242
+ el: el,
243
+ fn: fn || $.noop
244
+ };
245
+ var key = ++this._key;
246
+ callbacks[key] = callback;
247
+
248
+ // add 立即检测,防止首屏元素问题
249
+ if(self._windowRegion) {
250
+ self._loadItem(key, callback);
251
+ } else {
252
+ self.refresh();
253
+ }
254
+ },
255
+ addElements: function(elements) {
256
+ var self = this;
257
+ self._counter = self._counter || 0;
258
+ var lazyloads = [];
259
+ if(!elements && self.options.selector) {
260
+ lazyloads = self.container.querySelectorAll(self.options.selector);
261
+ } else {
262
+ $.each(elements, function(index, el) {
263
+ lazyloads = lazyloads.concat($.qsa(self.options.selector, el));
264
+ });
265
+ }
266
+ //addElements时,自动初始化一次
267
+ if(self._containerIsNotDocument) {
268
+ self._containerRegion = self._getBoundingRect(self.container);
269
+ }
270
+ $.each(lazyloads, function(index, el) {
271
+ if(!el.getAttribute('data-lazyload-id')) {
272
+ if(self.addElement(el)) {
273
+ el.setAttribute('data-lazyload-id', mid++);
274
+ self.addCallback(el, self.handle);
275
+ }
276
+ }
277
+ });
278
+ },
279
+ addElement: function(el) {
280
+ return true;
281
+ },
282
+ handle: function() {
283
+ //throw new Error('需子类实现');
284
+ },
285
+ refresh: function(check) {
286
+ if(check) { //检查新的lazyload
287
+ this.addElements();
288
+ }
289
+ this._loadFn();
290
+ },
291
+ pause: function() {
292
+ var load = this._loadFn;
293
+ if(this._destroyed) {
294
+ return;
295
+ }
296
+ window.removeEventListener('scroll', load);
297
+ window.removeEventListener($.EVENT_MOVE, load);
298
+ window.removeEventListener('resize', load);
299
+ if(this._containerIsNotDocument) {
300
+ this.container.removeEventListener('scrollend', load);
301
+ this.container.removeEventListener('scroll', load);
302
+ this.container.removeEventListener($.EVENT_MOVE, load);
303
+ }
304
+ },
305
+ resume: function() {
306
+ var load = this._loadFn;
307
+ if(this._destroyed) {
308
+ return;
309
+ }
310
+ window.addEventListener('scroll', load, false);
311
+ window.addEventListener($.EVENT_MOVE, load, false);
312
+ window.addEventListener('resize', load, false);
313
+ if(this._containerIsNotDocument) {
314
+ this.container.addEventListener('scrollend', load, false);
315
+ this.container.addEventListener('scroll', load, false);
316
+ this.container.addEventListener($.EVENT_MOVE, load, false);
317
+ }
318
+ },
319
+ destroy: function() {
320
+ var self = this;
321
+ self.pause();
322
+ self._callbacks = {};
323
+ $.trigger(this.container, 'destroy', self);
324
+ self._destroyed = 1;
325
+ }
326
+ });
327
+ })(mui, window, document);