@oxiaom/adoremix-linux-arm 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.
- package/index.js +24 -0
- package/native/.adoremix-native.json +1 -0
- package/native/AdoreMixV8.0.17_console_linuxarm +0 -0
- package/native/README.md +20 -0
- package/native/audio/libqtaudio_alsa.so +0 -0
- package/native/audio/libqtmedia_pulse.so +0 -0
- package/native/bearer/libqconnmanbearer.so +0 -0
- package/native/bearer/libqgenericbearer.so +0 -0
- package/native/bearer/libqnmbearer.so +0 -0
- package/native/etc/Demo1.ini +49 -0
- package/native/etc/docroot/bangzhu/.project +22 -0
- package/native/etc/docroot/bangzhu/css/app.css +21 -0
- package/native/etc/docroot/bangzhu/css/feedback.css +131 -0
- package/native/etc/docroot/bangzhu/css/icons-extra.css +63 -0
- package/native/etc/docroot/bangzhu/css/mui.dtpicker.css +136 -0
- package/native/etc/docroot/bangzhu/css/mui.imageviewer.css +123 -0
- package/native/etc/docroot/bangzhu/css/mui.indexedlist.css +112 -0
- package/native/etc/docroot/bangzhu/css/mui.listpicker.css +95 -0
- package/native/etc/docroot/bangzhu/css/mui.min.css +5 -0
- package/native/etc/docroot/bangzhu/css/mui.picker.all.css +285 -0
- package/native/etc/docroot/bangzhu/css/mui.picker.css +85 -0
- package/native/etc/docroot/bangzhu/css/mui.picker.min.css +7 -0
- package/native/etc/docroot/bangzhu/css/mui.poppicker.css +64 -0
- package/native/etc/docroot/bangzhu/examples/accordion.html +125 -0
- package/native/etc/docroot/bangzhu/examples/actionsheet-plus.html +128 -0
- package/native/etc/docroot/bangzhu/examples/actionsheet.html +153 -0
- package/native/etc/docroot/bangzhu/examples/ad.html +47 -0
- package/native/etc/docroot/bangzhu/examples/ajax.html +155 -0
- package/native/etc/docroot/bangzhu/examples/badges.html +54 -0
- package/native/etc/docroot/bangzhu/examples/beecloud.html +150 -0
- package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/detail.html +104 -0
- package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/list-to-detail.css +160 -0
- package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/listview.html +326 -0
- package/native/etc/docroot/bangzhu/examples/best-practices/list-to-detail/vue.min.js +8 -0
- package/native/etc/docroot/bangzhu/examples/buttons-with-badges.html +48 -0
- package/native/etc/docroot/bangzhu/examples/buttons-with-block.html +50 -0
- package/native/etc/docroot/bangzhu/examples/buttons-with-icons.html +68 -0
- package/native/etc/docroot/bangzhu/examples/buttons-with-loading.html +86 -0
- package/native/etc/docroot/bangzhu/examples/buttons.html +89 -0
- package/native/etc/docroot/bangzhu/examples/card.html +97 -0
- package/native/etc/docroot/bangzhu/examples/checkbox.html +68 -0
- package/native/etc/docroot/bangzhu/examples/clouddb_wilddog.html +268 -0
- package/native/etc/docroot/bangzhu/examples/date.html +88 -0
- package/native/etc/docroot/bangzhu/examples/dialog.html +82 -0
- package/native/etc/docroot/bangzhu/examples/dtpicker.html +129 -0
- package/native/etc/docroot/bangzhu/examples/echarts.html +150 -0
- package/native/etc/docroot/bangzhu/examples/feedback.html +72 -0
- package/native/etc/docroot/bangzhu/examples/grid-default.html +61 -0
- package/native/etc/docroot/bangzhu/examples/grid-pagination.html +266 -0
- package/native/etc/docroot/bangzhu/examples/guide.html +269 -0
- package/native/etc/docroot/bangzhu/examples/icons-extra.html +161 -0
- package/native/etc/docroot/bangzhu/examples/icons.html +182 -0
- package/native/etc/docroot/bangzhu/examples/im-chat.html +711 -0
- package/native/etc/docroot/bangzhu/examples/imageviewer-native.html +90 -0
- package/native/etc/docroot/bangzhu/examples/imageviewer.html +197 -0
- package/native/etc/docroot/bangzhu/examples/indexed-list-select.html +459 -0
- package/native/etc/docroot/bangzhu/examples/indexed-list.html +265 -0
- package/native/etc/docroot/bangzhu/examples/info.html +119 -0
- package/native/etc/docroot/bangzhu/examples/input.html +108 -0
- package/native/etc/docroot/bangzhu/examples/lazyload-image.html +73 -0
- package/native/etc/docroot/bangzhu/examples/list-triplex-row.html +115 -0
- package/native/etc/docroot/bangzhu/examples/list-with-input.html +91 -0
- package/native/etc/docroot/bangzhu/examples/locker-dom.html +85 -0
- package/native/etc/docroot/bangzhu/examples/login.html +83 -0
- package/native/etc/docroot/bangzhu/examples/media-list.html +220 -0
- package/native/etc/docroot/bangzhu/examples/message-bottom.html +87 -0
- package/native/etc/docroot/bangzhu/examples/modals.html +45 -0
- package/native/etc/docroot/bangzhu/examples/nav-nativeObj.html +45 -0
- package/native/etc/docroot/bangzhu/examples/nav.html +135 -0
- package/native/etc/docroot/bangzhu/examples/nav_transparent.html +127 -0
- package/native/etc/docroot/bangzhu/examples/nav_transparent_native.html +121 -0
- package/native/etc/docroot/bangzhu/examples/numbox.html +114 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-down.html +384 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-left-plus-main.html +293 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-left-plus-menu.html +102 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-left.html +228 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-right-plus-main.html +292 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-right-plus-menu.html +111 -0
- package/native/etc/docroot/bangzhu/examples/offcanvas-drag-right.html +220 -0
- package/native/etc/docroot/bangzhu/examples/pagination.html +236 -0
- package/native/etc/docroot/bangzhu/examples/picker.html +159 -0
- package/native/etc/docroot/bangzhu/examples/popovers.html +200 -0
- package/native/etc/docroot/bangzhu/examples/progressbar.html +171 -0
- package/native/etc/docroot/bangzhu/examples/pullrefresh.html +86 -0
- package/native/etc/docroot/bangzhu/examples/pullrefresh_main.html +46 -0
- package/native/etc/docroot/bangzhu/examples/pullrefresh_sub.html +101 -0
- package/native/etc/docroot/bangzhu/examples/pullrefresh_with_tab.html +586 -0
- package/native/etc/docroot/bangzhu/examples/radio.html +93 -0
- package/native/etc/docroot/bangzhu/examples/range.html +89 -0
- package/native/etc/docroot/bangzhu/examples/setting.html +910 -0
- package/native/etc/docroot/bangzhu/examples/slider-default.html +98 -0
- package/native/etc/docroot/bangzhu/examples/slider-native.html +43 -0
- package/native/etc/docroot/bangzhu/examples/slider-table-default.html +62 -0
- package/native/etc/docroot/bangzhu/examples/slider-table-pagination.html +74 -0
- package/native/etc/docroot/bangzhu/examples/slider-with-title.html +99 -0
- package/native/etc/docroot/bangzhu/examples/switches.html +92 -0
- package/native/etc/docroot/bangzhu/examples/tab-top-subpage-1.html +131 -0
- package/native/etc/docroot/bangzhu/examples/tab-top-subpage-2.html +131 -0
- package/native/etc/docroot/bangzhu/examples/tab-top-subpage-3.html +56 -0
- package/native/etc/docroot/bangzhu/examples/tab-top-subpage-4.html +110 -0
- package/native/etc/docroot/bangzhu/examples/tab-top-subpage-5.html +131 -0
- package/native/etc/docroot/bangzhu/examples/tab-top-webview-main.html +183 -0
- package/native/etc/docroot/bangzhu/examples/tab-vertical-scroll.html +170 -0
- package/native/etc/docroot/bangzhu/examples/tab-webview-main.html +112 -0
- package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-about.html +38 -0
- package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-chat.html +127 -0
- package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-contact.html +155 -0
- package/native/etc/docroot/bangzhu/examples/tab-webview-subpage-setting.html +79 -0
- package/native/etc/docroot/bangzhu/examples/tab-with-segmented-control-vertical.html +85 -0
- package/native/etc/docroot/bangzhu/examples/tab-with-segmented-control.html +195 -0
- package/native/etc/docroot/bangzhu/examples/tab-with-viewpagerindicator.html +203 -0
- package/native/etc/docroot/bangzhu/examples/tabbar-labels-only.html +44 -0
- package/native/etc/docroot/bangzhu/examples/tabbar-with-submenus.html +75 -0
- package/native/etc/docroot/bangzhu/examples/tabbar.html +247 -0
- package/native/etc/docroot/bangzhu/examples/tableviews-with-badges.html +78 -0
- package/native/etc/docroot/bangzhu/examples/tableviews-with-collapses.html +83 -0
- package/native/etc/docroot/bangzhu/examples/tableviews-with-swipe.html +184 -0
- package/native/etc/docroot/bangzhu/examples/tableviews.html +87 -0
- package/native/etc/docroot/bangzhu/examples/typography.html +41 -0
- package/native/etc/docroot/bangzhu/fonts/mui-icons-extra.ttf +0 -0
- package/native/etc/docroot/bangzhu/fonts/mui.ttf +0 -0
- package/native/etc/docroot/bangzhu/images/60x60.gif +0 -0
- package/native/etc/docroot/bangzhu/images/cbd.jpg +0 -0
- package/native/etc/docroot/bangzhu/images/login-1.png +0 -0
- package/native/etc/docroot/bangzhu/images/logo.png +0 -0
- package/native/etc/docroot/bangzhu/images/muwu.jpg +0 -0
- package/native/etc/docroot/bangzhu/images/qrcode.png +0 -0
- package/native/etc/docroot/bangzhu/images/shuijiao.jpg +0 -0
- package/native/etc/docroot/bangzhu/images/yuantiao.jpg +0 -0
- package/native/etc/docroot/bangzhu/index-menu.html +196 -0
- package/native/etc/docroot/bangzhu/index.html +414 -0
- package/native/etc/docroot/bangzhu/js/95516.js +32 -0
- package/native/etc/docroot/bangzhu/js/arttmpl.js +2 -0
- package/native/etc/docroot/bangzhu/js/beecloud.js +141 -0
- package/native/etc/docroot/bangzhu/js/city.data-3.js +11548 -0
- package/native/etc/docroot/bangzhu/js/city.data.js +1605 -0
- package/native/etc/docroot/bangzhu/js/feedback.js +234 -0
- package/native/etc/docroot/bangzhu/js/mui.dtpicker.js +471 -0
- package/native/etc/docroot/bangzhu/js/mui.imageViewer.js +268 -0
- package/native/etc/docroot/bangzhu/js/mui.indexedlist.js +187 -0
- package/native/etc/docroot/bangzhu/js/mui.js +8390 -0
- package/native/etc/docroot/bangzhu/js/mui.lazyload.img.js +116 -0
- package/native/etc/docroot/bangzhu/js/mui.lazyload.js +327 -0
- package/native/etc/docroot/bangzhu/js/mui.listpicker.js +399 -0
- package/native/etc/docroot/bangzhu/js/mui.locker.js +303 -0
- package/native/etc/docroot/bangzhu/js/mui.min.js +6 -0
- package/native/etc/docroot/bangzhu/js/mui.picker.all.js +1018 -0
- package/native/etc/docroot/bangzhu/js/mui.picker.js +389 -0
- package/native/etc/docroot/bangzhu/js/mui.picker.min.js +7 -0
- package/native/etc/docroot/bangzhu/js/mui.poppicker.js +160 -0
- package/native/etc/docroot/bangzhu/js/mui.previewimage.js +382 -0
- package/native/etc/docroot/bangzhu/js/mui.pullToRefresh.js +407 -0
- package/native/etc/docroot/bangzhu/js/mui.pullToRefresh.material.js +352 -0
- package/native/etc/docroot/bangzhu/js/mui.view.js +628 -0
- package/native/etc/docroot/bangzhu/js/mui.zoom.js +322 -0
- package/native/etc/docroot/bangzhu/js/update.js +45 -0
- package/native/etc/docroot/bangzhu/js/webviewGroup.js +286 -0
- package/native/etc/docroot/bangzhu/libs/echarts-all.js +35 -0
- package/native/etc/docroot/bangzhu/manifest.json +994 -0
- package/native/etc/docroot/index.html +1 -0
- package/native/etc/docroot/luyin2/index.html +145 -0
- package/native/etc/docroot/luyin2/js/jquery-1.10.1.min.js +6 -0
- package/native/etc/docroot/luyin2/js/jquery-1.5.min.js +16 -0
- package/native/etc/docroot/luyin2/js/jquery.js +18 -0
- package/native/etc/docroot/luyin2/js/jquery.multiselect.js +104 -0
- package/native/etc/docroot/luyin2/js/lame.min.js +308 -0
- package/native/etc/docroot/luyin2/js/recordmp3.js +239 -0
- package/native/etc/docroot/luyin2/js/worker-realtime.js +106 -0
- package/native/etc/docroot/luyin2//346/223/215/344/275/234/346/214/207/345/215/227.txt +3 -0
- package/native/etc/docroot/static/css/app.8421a6d597ba48619941ccd4e386fbb2.css +675 -0
- package/native/etc/docroot/static/css/app.8421a6d597ba48619941ccd4e386fbb2.css.map +1 -0
- package/native/etc/docroot/static/fonts/element-icons.535877f.woff +0 -0
- package/native/etc/docroot/static/fonts/element-icons.732389d.ttf +0 -0
- package/native/etc/docroot/static/img/login_bg.ad6b482.jpg +0 -0
- package/native/etc/docroot/static/js/app.eff1c2200a448936b027.js +2 -0
- package/native/etc/docroot/static/js/app.eff1c2200a448936b027.js.map +1 -0
- package/native/etc/docroot/static/js/manifest.400eada2d24447a4fc30.js +2 -0
- package/native/etc/docroot/static/js/manifest.400eada2d24447a4fc30.js.map +1 -0
- package/native/etc/docroot/static/js/vendor.ca4f735ec1dfe336a804.js +45 -0
- package/native/etc/docroot/static/js/vendor.ca4f735ec1dfe336a804.js.map +1 -0
- package/native/etc/docroot/tts.js +151 -0
- package/native/etc/docroot/xcx/Discover.html +156 -0
- package/native/etc/docroot/xcx/css/mui.css +5649 -0
- package/native/etc/docroot/xcx/css/mui.min.css +5 -0
- package/native/etc/docroot/xcx/devicelist.html +659 -0
- package/native/etc/docroot/xcx/fonts/mui.ttf +0 -0
- package/native/etc/docroot/xcx/index.html +75 -0
- package/native/etc/docroot/xcx/index.js +1 -0
- package/native/etc/docroot/xcx/js/axios.min.js +3 -0
- package/native/etc/docroot/xcx/js/axios.min.map +1 -0
- package/native/etc/docroot/xcx/js/js.cookie.js +8 -0
- package/native/etc/docroot/xcx/js/mui.js +8390 -0
- package/native/etc/docroot/xcx/js/mui.min.js +6 -0
- package/native/etc/docroot/xcx/main.html +85 -0
- package/native/etc/ssl/README.txt +5 -0
- package/native/etc/ssl/ca.crt +21 -0
- package/native/etc/ssl/ca.key +27 -0
- package/native/etc/ssl/client.crt +20 -0
- package/native/etc/ssl/client.key +28 -0
- package/native/etc/ssl/client.p12 +0 -0
- package/native/etc/ssl/server.crt +20 -0
- package/native/etc/ssl/server.key +28 -0
- package/native/etc/templates/demo-de.tpl +12 -0
- package/native/etc/templates/demo.tpl +12 -0
- package/native/etc/ttys/adore03.sql +426 -0
- package/native/etc/ttys/adore04.sql +426 -0
- package/native/etc/ttys/adore1.sql +859 -0
- package/native/etc/ttys/adore_mix22.sql +806 -0
- package/native/etc/ttys/sqlite.sql +1140 -0
- package/native/etc/ttys/sqlite3main.sql +434 -0
- package/native/etc/ttys/sqltest.sql +279 -0
- package/native/etc/ttys/tp3sql.sql +1412 -0
- package/native/find.js +529 -0
- package/native/findsc.js +701 -0
- package/native/iconengines/libqsvgicon.so +0 -0
- package/native/imageformats/libqgif.so +0 -0
- package/native/imageformats/libqico.so +0 -0
- package/native/imageformats/libqjpeg.so +0 -0
- package/native/imageformats/libqsvg.so +0 -0
- package/native/lib/libQt5Concurrent.so.5 +0 -0
- package/native/lib/libQt5Core.so.5 +0 -0
- package/native/lib/libQt5DBus.so.5 +0 -0
- package/native/lib/libQt5Multimedia.so.5 +0 -0
- package/native/lib/libQt5MultimediaGstTools.so.5 +0 -0
- package/native/lib/libQt5Network.so.5 +0 -0
- package/native/lib/libQt5Sql.so.5 +0 -0
- package/native/lib/libQt5Svg.so.5 +0 -0
- package/native/lib/libQt5WebSockets.so.5 +0 -0
- package/native/lib/libQt5Xml.so.5 +0 -0
- package/native/lib/libcrypto.so.3 +0 -0
- package/native/lib/libgcc_s.so.1 +0 -0
- package/native/lib/libmariadb.so.3 +0 -0
- package/native/lib/libmp3lame.so.0 +0 -0
- package/native/lib/libmp3lame.so.0.0.0 +0 -0
- package/native/lib/libopus.so.0 +0 -0
- package/native/lib/libopus.so.0.8.0 +0 -0
- package/native/lib/libopusfile.so.0 +0 -0
- package/native/lib/libopusfile.so.0.4.2 +0 -0
- package/native/lib/libopusurl.so.0 +0 -0
- package/native/lib/libopusurl.so.0.4.2 +0 -0
- package/native/lib/libsqlite3.so.0 +0 -0
- package/native/lib/libsqlite3.so.0.8.6 +0 -0
- package/native/lib/libssl.so.3 +0 -0
- package/native/lib/libstdc++.so.6 +0 -0
- package/native/lib/libstdc++.so.6.0.30 +0 -0
- package/native/mediaservice/libgstaudiodecoder.so +0 -0
- package/native/mediaservice/libgstcamerabin.so +0 -0
- package/native/mediaservice/libgstmediacapture.so +0 -0
- package/native/mediaservice/libgstmediaplayer.so +0 -0
- package/native/platforms/libqeglfs.so +0 -0
- package/native/platforms/libqlinuxfb.so +0 -0
- package/native/platforms/libqminimal.so +0 -0
- package/native/platforms/libqminimalegl.so +0 -0
- package/native/platforms/libqoffscreen.so +0 -0
- package/native/platforms/libqvnc.so +0 -0
- package/native/platforms/libqxcb.so +0 -0
- package/native/qt.conf +3 -0
- package/native/sqldrivers/libqsqlite.so +0 -0
- package/native/sqldrivers/libqsqlmysql.so +0 -0
- package/native/sqldrivers/libsqlitecipher.so +0 -0
- package/native/tts.js +151 -0
- 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);
|