From 4370deb2616a37bce49bad241ab8d4f7c9cb6322 Mon Sep 17 00:00:00 2001 From: jianling Date: Mon, 16 Sep 2013 13:05:59 +0800 Subject: [PATCH 1/2] update branch --- .gitignore | 3 + .gitmodules | 3 + .jshintrc | 166 ++-- .travis.yml | 20 + README.md | 141 +++ assets/chart/barChart.css | 64 -- assets/chart/lineChart.css | 76 -- assets/chart/pieChart.css | 48 - assets/lottery/box/box.css | 382 -------- assets/lottery/box/images/bottom.png | Bin 11266 -> 0 bytes assets/lottery/box/images/chest_still.png | Bin 15358 -> 0 bytes .../lottery/box/images/chest_still_small.png | Bin 17338 -> 0 bytes assets/lottery/box/images/glow.png | Bin 18903 -> 0 bytes assets/lottery/box/images/key.png | Bin 1616 -> 0 bytes assets/lottery/box/images/top.png | Bin 8331 -> 0 bytes assets/lottery/box/images/top_open.png | Bin 5640 -> 0 bytes assets/lottery/box/images/top_open2.png | Bin 5222 -> 0 bytes assets/lottery/wheel/images/button.png | Bin 7652 -> 0 bytes assets/lottery/wheel/images/button_active.png | Bin 5161 -> 0 bytes .../lottery/wheel/images/button_rotating.png | Bin 5580 -> 0 bytes assets/lottery/wheel/images/pointer.png | Bin 959 -> 0 bytes assets/lottery/wheel/images/wheel.png | Bin 40992 -> 0 bytes assets/lottery/wheel/images/wheel_ring.png | Bin 53586 -> 0 bytes assets/lottery/wheel/wheel.css | 57 -- assets/widget/button/button.css | 19 +- assets/widget/button/button.default.css | 79 +- assets/widget/calendar/calendar.css | 5 +- assets/widget/dropmenu/dropmenu.css | 20 +- assets/widget/dropmenu/dropmenu.default.css | 268 ++--- assets/widget/historylist/historylist.css | 16 + .../historylist/historylist.default.css | 27 + .../historylist/historylist_item_icon.png | Bin 0 -> 396 bytes assets/widget/historylist/icon.png | Bin 0 -> 396 bytes .../widget/historylist/suglist_item_icon.png | Bin 0 -> 326 bytes assets/widget/navigator/nav.png | Bin 602 -> 0 bytes assets/widget/navigator/navigator.css | 25 +- assets/widget/navigator/navigator.default.css | 57 +- assets/widget/navigator/navigator.iscroll.css | 12 - .../navigator/navigator.iscroll.default.css | 11 - assets/widget/popover/popover.css | 11 + assets/widget/popover/popover.default.css | 96 ++ assets/widget/quickdelete/quickdelete.css | 18 +- .../quickdelete/quickdelete.default.css | 13 + assets/widget/slider/slider.css | 54 +- assets/widget/slider/slider.default.css | 98 +- assets/widget/suggestion/$iscroll.css | 5 + assets/widget/suggestion/$quickdelete.css | 17 + assets/widget/suggestion/del.png | Bin 0 -> 865 bytes assets/widget/suggestion/suggestion.css | 21 +- .../widget/suggestion/suggestion.default.css | 14 +- assets/widget/toolbar/toolbar.css | 11 - assets/widget/toolbar/toolbar.default.css | 70 +- build.js | 48 - build/config.json | 28 - build/dist.js | 450 --------- build/doc.js | 34 - build/doc/index.php | 167 ---- build/doc/lib/JsDoc/Template/Doc.php | 206 ---- build/fis.js | 82 -- build/jshint.js | 26 - build/util/file.js | 147 --- build/util/helper.js | 53 - build/util/shell.js | 27 - convert.js | 39 - examples/assets/app.js | 100 ++ examples/assets/demo.css | 104 ++ examples/assets/demos.js | 1 + examples/assets/dialog_demo.css | 157 +++ examples/assets/example.js | 163 +++ examples/assets/gmu_a2d.png | Bin 0 -> 17269 bytes examples/assets/icon.png | Bin 0 -> 18894 bytes examples/assets/img/adddesktop.png | Bin 0 -> 8694 bytes examples/assets/img/back.png | Bin 0 -> 1998 bytes examples/assets/img/barchart.png | Bin 0 -> 13613 bytes examples/assets/img/button.png | Bin 0 -> 2610 bytes examples/assets/img/dialog.png | Bin 0 -> 4902 bytes examples/assets/img/dropmenu.png | Bin 0 -> 2453 bytes examples/assets/img/gotop.png | Bin 0 -> 4606 bytes examples/assets/img/imglazyload.png | Bin 0 -> 2453 bytes examples/assets/img/linechart.png | Bin 0 -> 14184 bytes examples/assets/img/navigator.png | Bin 0 -> 2649 bytes examples/assets/img/new.png | Bin 0 -> 1025 bytes examples/assets/img/panel.png | Bin 0 -> 3055 bytes examples/assets/img/piechart.png | Bin 0 -> 3432 bytes examples/assets/img/refresh.png | Bin 0 -> 2890 bytes examples/assets/img/slider.png | Bin 0 -> 2672 bytes examples/assets/img/suggestion.png | Bin 0 -> 2838 bytes examples/assets/img/tabs.png | Bin 0 -> 3055 bytes examples/assets/img/toolbar.png | Bin 0 -> 5503 bytes examples/assets/ipt.png | Bin 0 -> 428 bytes examples/assets/iscroll.js | 924 ++++++++++++++++++ examples/assets/mobileevent2pc.js | 140 +++ examples/assets/panel_demo.css | 120 +++ 93 files changed, 2491 insertions(+), 2452 deletions(-) create mode 100644 .gitmodules create mode 100644 .travis.yml create mode 100644 README.md delete mode 100644 assets/chart/barChart.css delete mode 100644 assets/chart/lineChart.css delete mode 100644 assets/chart/pieChart.css delete mode 100644 assets/lottery/box/box.css delete mode 100644 assets/lottery/box/images/bottom.png delete mode 100644 assets/lottery/box/images/chest_still.png delete mode 100644 assets/lottery/box/images/chest_still_small.png delete mode 100644 assets/lottery/box/images/glow.png delete mode 100644 assets/lottery/box/images/key.png delete mode 100644 assets/lottery/box/images/top.png delete mode 100644 assets/lottery/box/images/top_open.png delete mode 100644 assets/lottery/box/images/top_open2.png delete mode 100644 assets/lottery/wheel/images/button.png delete mode 100644 assets/lottery/wheel/images/button_active.png delete mode 100644 assets/lottery/wheel/images/button_rotating.png delete mode 100644 assets/lottery/wheel/images/pointer.png delete mode 100644 assets/lottery/wheel/images/wheel.png delete mode 100644 assets/lottery/wheel/images/wheel_ring.png delete mode 100644 assets/lottery/wheel/wheel.css create mode 100644 assets/widget/historylist/historylist.css create mode 100644 assets/widget/historylist/historylist.default.css create mode 100644 assets/widget/historylist/historylist_item_icon.png create mode 100644 assets/widget/historylist/icon.png create mode 100644 assets/widget/historylist/suglist_item_icon.png delete mode 100644 assets/widget/navigator/nav.png delete mode 100644 assets/widget/navigator/navigator.iscroll.css delete mode 100644 assets/widget/navigator/navigator.iscroll.default.css create mode 100644 assets/widget/popover/popover.css create mode 100644 assets/widget/popover/popover.default.css create mode 100644 assets/widget/quickdelete/quickdelete.default.css create mode 100644 assets/widget/suggestion/$iscroll.css create mode 100644 assets/widget/suggestion/$quickdelete.css create mode 100644 assets/widget/suggestion/del.png delete mode 100644 build.js delete mode 100644 build/config.json delete mode 100644 build/dist.js delete mode 100644 build/doc.js delete mode 100644 build/doc/index.php delete mode 100644 build/doc/lib/JsDoc/Template/Doc.php delete mode 100644 build/fis.js delete mode 100644 build/jshint.js delete mode 100644 build/util/file.js delete mode 100644 build/util/helper.js delete mode 100644 build/util/shell.js delete mode 100644 convert.js create mode 100644 examples/assets/app.js create mode 100644 examples/assets/demo.css create mode 100644 examples/assets/demos.js create mode 100644 examples/assets/dialog_demo.css create mode 100644 examples/assets/example.js create mode 100644 examples/assets/gmu_a2d.png create mode 100644 examples/assets/icon.png create mode 100644 examples/assets/img/adddesktop.png create mode 100644 examples/assets/img/back.png create mode 100644 examples/assets/img/barchart.png create mode 100644 examples/assets/img/button.png create mode 100644 examples/assets/img/dialog.png create mode 100644 examples/assets/img/dropmenu.png create mode 100644 examples/assets/img/gotop.png create mode 100644 examples/assets/img/imglazyload.png create mode 100644 examples/assets/img/linechart.png create mode 100644 examples/assets/img/navigator.png create mode 100644 examples/assets/img/new.png create mode 100644 examples/assets/img/panel.png create mode 100644 examples/assets/img/piechart.png create mode 100644 examples/assets/img/refresh.png create mode 100644 examples/assets/img/slider.png create mode 100644 examples/assets/img/suggestion.png create mode 100644 examples/assets/img/tabs.png create mode 100644 examples/assets/img/toolbar.png create mode 100644 examples/assets/ipt.png create mode 100644 examples/assets/iscroll.js create mode 100644 examples/assets/mobileevent2pc.js create mode 100644 examples/assets/panel_demo.css diff --git a/.gitignore b/.gitignore index 1d168230..94113aa1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ /node_modules /dist /doc +/test/report/report.html +/test/report/report.xml +/src_cov \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 00000000..ff7860b5 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "src/zepto"] + path = src/zepto + url = https://github.com/madrobby/zepto.git diff --git a/.jshintrc b/.jshintrc index 8589312f..036af118 100644 --- a/.jshintrc +++ b/.jshintrc @@ -1,87 +1,83 @@ { - /* jshint maxlen:1000, quotmark:double */ - // JSHint Default Configuration File (as on JSHint website) - // See http://jshint.com/docs/ for more details - - "maxerr" : 50, // {int} Maximum error before stopping - - // Enforcing - "bitwise" : false, // true: Prohibit bitwise operators (&, |, ^, etc.) - "camelcase" : true, // true: Identifiers must be in camelCase - "curly" : true, // true: Require {} for every new block or scope - "eqeqeq" : true, // true: Require triple equals (===) for comparison - "forin" : true, // true: Require filtering for..in loops with obj.hasOwnProperty() - "immed" : false, // true: Require immediate invocations to be wrapped in parens e.g. `(function () { } ());` - "indent" : 4, // {int} Number of spaces to use for indentation - "latedef" : false, // true: Require variables/functions to be defined before being used - "newcap" : false, // true: Require capitalization of all constructor functions e.g. `new F()` - "noarg" : true, // true: Prohibit use of `arguments.caller` and `arguments.callee` - "noempty" : true, // true: Prohibit use of empty blocks - "nonew" : false, // true: Prohibit use of constructors for side-effects (without assignment) - "plusplus" : false, // true: Prohibit use of `++` & `--` - "quotmark" : "single", // Quotation mark consistency: - // false : do nothing (default) - // true : ensure whatever is used is consistent - // "single" : require single quotes - // "double" : require double quotes - "undef" : true, // true: Require all non-global variables to be declared (prevents global leaks) - "unused" : true, // true: Require all defined variables be used - "strict" : true, // true: Requires all functions run in ES5 Strict Mode - "trailing" : false, // true: Prohibit trailing whitespaces - "maxparams" : false, // {int} Max number of formal params allowed per function - "maxdepth" : false, // {int} Max depth of nested blocks (within functions) - "maxstatements" : false, // {int} Max number statements per function - "maxcomplexity" : false, // {int} Max cyclomatic complexity per function - "maxlen" : 80, // {int} Max number of characters per line - - // Relaxing - "asi" : false, // true: Tolerate Automatic Semicolon Insertion (no semicolons) - "boss" : false, // true: Tolerate assignments where comparisons would be expected - "debug" : false, // true: Allow debugger statements e.g. browser breakpoints. - "eqnull" : false, // true: Tolerate use of `== null` - "es5" : false, // true: Allow ES5 syntax (ex: getters and setters) - "esnext" : false, // true: Allow ES.next (ES6) syntax (ex: `const`) - //"moz" : false, // true: Allow Mozilla specific syntax (extends and overrides esnext features) - // (ex: `for each`, multiple try/catch, function expression…) - "evil" : false, // true: Tolerate use of `eval` and `new Function()` - "expr" : true, // true: Tolerate `ExpressionStatement` as Programs - "funcscope" : false, // true: Tolerate defining variables inside control statements" - "globalstrict" : false, // true: Allow global "use strict" (also enables 'strict') - "iterator" : false, // true: Tolerate using the `__iterator__` property - "lastsemic" : false, // true: Tolerate omitting a semicolon for the last statement of a 1-line block - "laxbreak" : false, // true: Tolerate possibly unsafe line breakings - "laxcomma" : false, // true: Tolerate comma-first style coding - "loopfunc" : false, // true: Tolerate functions being defined in loops - "multistr" : false, // true: Tolerate multi-line strings - "proto" : false, // true: Tolerate using the `__proto__` property - "scripturl" : false, // true: Tolerate script-targeted URLs - "smarttabs" : false, // true: Tolerate mixed tabs/spaces when used for alignment - "shadow" : false, // true: Allows re-define variables later in code e.g. `var x=1; x=2;` - "sub" : false, // true: Tolerate using `[]` notation when it can still be expressed in dot notation - "supernew" : false, // true: Tolerate `new function () { ... };` and `new Object;` - "validthis" : false, // true: Tolerate using this in a non-constructor function - - // Environments - "browser" : true, // Web Browser (window, document, etc) - "couch" : false, // CouchDB - "devel" : true, // Development/debugging (alert, confirm, etc) - "dojo" : false, // Dojo Toolkit - "jquery" : false, // jQuery - "mootools" : false, // MooTools - "node" : true, // Node.js - "nonstandard" : false, // Widely adopted globals (escape, unescape, etc) - "prototypejs" : false, // Prototype and Scriptaculous - "rhino" : false, // Rhino - "worker" : false, // Web Workers - "wsh" : false, // Windows Scripting Host - "yui" : false, // Yahoo User Interface - - // Legacy - "nomen" : true, // true: Prohibit dangling `_` in variables - "onevar" : true, // true: Allow only one `var` statement per function - "passfail" : false, // true: Stop on first error - "white" : false, // true: Check against strict whitespace and indentation rules - - // Custom Globals - "predef" : [ ] // additional predefined global variables + "maxerr" : 50, + "bitwise" : false, + "camelcase" : true, + "curly" : true, + "eqeqeq" : true, + "forin" : true, + "immed" : false, + "indent" : 4, + "latedef" : false, + "newcap" : false, + "noarg" : true, + "noempty" : true, + "nonew" : false, + "plusplus" : false, + "quotmark" : "single", + + "undef" : true, + "unused" : true, + "strict" : false, + "trailing" : false, + "maxparams" : false, + "maxdepth" : false, + "maxstatements" : false, + "maxcomplexity" : false, + "maxlen" : 80, + "asi" : false, + "boss" : false, + "debug" : false, + "eqnull" : false, + "es5" : false, + "esnext" : false, + + + "evil" : false, + "expr" : true, + "funcscope" : false, + "globalstrict" : false, + "iterator" : false, + "lastsemic" : false, + "laxbreak" : false, + "laxcomma" : false, + "loopfunc" : false, + "multistr" : false, + "proto" : false, + "scripturl" : false, + "smarttabs" : false, + "shadow" : false, + "sub" : false, + "supernew" : false, + "validthis" : false, + "browser" : true, + "couch" : false, + "devel" : true, + "dojo" : false, + "jquery" : false, + "mootools" : false, + "node" : true, + "nonstandard" : false, + "prototypejs" : false, + "rhino" : false, + "worker" : false, + "wsh" : false, + "yui" : false, + "nomen" : false, + "onevar" : true, + "passfail" : false, + "white" : true, + "predef" : [ "gmu" ], + "withstmt" : false, + "zepto" : true, + "assignvarfirst" : true, + "varnewline": true, + "strictchain": true, + "strictindent": true, + "operatorend": true, + "strictlinebreak": true, + "assignthisto" : "me", + "assignexceptionto" : "ex", + "strictcomment" : true, + "fileoverview" : true, + "novoid" : true } \ No newline at end of file diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..91987a8c --- /dev/null +++ b/.travis.yml @@ -0,0 +1,20 @@ +language: node_js + +node_js: + - 0.8 + +before_script: + - sudo apt-get update + - sudo apt-get install apache2 + - sudo apt-get install php5 + - sudo service apache2 restart + - cd ../ + - sudo mv GMU /var/www/ + - cd /var/www/GMU + - npm install -g grunt-cli + - grunt update_submodules concat + + +script: + - grunt test + - grunt download \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 00000000..c63ec737 --- /dev/null +++ b/README.md @@ -0,0 +1,141 @@ +##Notice## ++ 该地址是GMU新github地址,基于最新zepto 1.0版本,GMU版本为2.0.5 ++ 2.0.3及以下版本(支持zepto 1.0rc1),请移步至老的github地址 https://github.com/campaign/gmu + +##Build State [![Build Status](https://secure.travis-ci.org/gmuteam/GMU.png?branch=dev-refactor)](https://travis-ci.org/gmuteam/GMU) + +##GMU## +GMU是基于zepto的轻量级mobile UI组件库,符合jquery ui使用规范,提供webapp、pad端简单易用的UI组件。为了减小代码量,提高性能,组件再插件化,兼容iOS3+ / android2.1+,支持国内主流移动端浏览器,如safari, chrome, UC, qq等。 +GMU由百度GMU小组开发,基于开源BSD协议,支持商业和非商业用户的免费使用和任意修改,您可以通过[get started](http://gmu.baidu.com/getstarted)快速了解。 + +###Quick Start### ++ **官网:**http://gmu.baidu.com/ ++ **API:**http://gmu.baidu.com/doc + +###GMU组件### +1. **扩展在zepto上的公用方法** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
公共方法 description
fix通用fix方法,实现position:fix效果
highlight点击高亮效果
imglazyload图片延迟加载,支持iscroll中图片延迟加载
iscrolliScroll 4进行精简,挂载到zepto中,通过$('#iscroll').iScroll()调用
position类似于jquery position,处理元素定位,支持at,my,of,with等参数
location基于百度定位接口,获取当前坐标
+2. **UI组件** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
组件名描述
suggestion搜索建议
quickdelete快速删除
tabstab切换(包括插件tabs.swipe和tabs.ajax)
slider图片轮播(包括插件slider.dynamic)
navigator导航栏(包括插件navigator.iscroll)
dialog对话框(包括插件dialog.position)
panel面板切换
refresh点击刷新,拉动刷新(包括插件refresh.iscroll,refresh.iOS5,refresh.lite)
dropmenu下拉框(包括插件dropmenu.iscroll)
gotop返回顶部(包括插件gotop.iscroll)
progressbar进度条
datepicker日历
button按钮(包括插件button.input)
+ +###版本说明### +1. 2.0.3,基于[zepto 1.0rc1](http://zeptojs.com/)开发,包括14个通用UI组件及各组件相关插件 **latest version** + +###命令行工具### +命令行工具提供代码打包,[规范](https://github.com/gmuteam/jsbint/blob/master/standard.md)检测和生成文档功能。命令行工具基于grunt环境,请安装grunt-cli `npm install -g grunt-cli` + +在使用前需要安装依赖,`npm install` + +####1. 打包代码#### +`grunt` + +####2. 代码规范检测#### +gmu所有的代码要求通过[此内定代码规范](https://github.com/gmuteam/jsbint/blob/master/standard.md), 通过以下命令可以得到检测结果 +`grunt jsbint` + +####3. 生成文档#### +通过以下命令可以在doc目录下生成静态文档,也可以[在线查看](http://gmu.baidu.com/doc); +`grunt doc` + + +###反馈bug### +如果您有任何关于GMU或移动前端开发中的问题,可以在QQ群中讨论,也可以通过[git issue](https://github.com/campaign/gmu/issues)给我们反馈bug,我们会尽快解决。 +当然,我们更欢迎您的fork,为GMU添砖加瓦。 + +###联系我们### ++ QQ:127405799 ++ Email:gmu@baidu.com + diff --git a/assets/chart/barChart.css b/assets/chart/barChart.css deleted file mode 100644 index 58e0da80..00000000 --- a/assets/chart/barChart.css +++ /dev/null @@ -1,64 +0,0 @@ -body { - padding:0px; - margin:0px; -} - -#barchart { - background-color:#fff; - position:relative; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tips-container { - width : 100%; - height : 25px; - background-color:#fff; - position:absolute; - padding:0px; - margin:0px; -} - -.chart-canvas{ - position:absolute; - background-color:#ffffff; -} - -.category-label{ - position:absolute; - margin:0px; - padding:0px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.value-label{ - position:absolute; - margin:0px; - padding:0px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tip-color{ - height:25px; - margin-right:5px; - float:left; - color:#fff; - line-height: 25px; - padding:0px 4px; - font-family:Microsoft YaHei, SimSun; - font-size:16px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tip-content{ - height:25px; - line-height:25px; - float:left; - margin-right:10px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} \ No newline at end of file diff --git a/assets/chart/lineChart.css b/assets/chart/lineChart.css deleted file mode 100644 index 7e416a47..00000000 --- a/assets/chart/lineChart.css +++ /dev/null @@ -1,76 +0,0 @@ -body { - padding:0px; - margin:0px; -} - -#linechart { - background-color:#fff; - position:relative; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tips-container { - width : 100%; - height : 25px; - background-color:#fff; - position:absolute; - padding:0px; - margin:0px; -} - -.chart-canvas{ - position:absolute; - background-color:#ffffff; -} - -.category-label{ - position:absolute; - margin:0px; - padding:0px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.value-label{ - position:absolute; - margin:0px; - padding:0px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tip-color{ - height:25px; - margin-right:5px; - float:left; - color:#fff; - line-height: 25px; - padding:0px 4px; - font-family:Microsoft YaHei, SimSun; - font-size:16px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tip-content{ - height:25px; - line-height:25px; - float:left; - margin-right:10px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.touch-line { - position:absolute; - /*background-color:#333;*/ - width:3px; - background:-webkit-gradient(linear, left top, right top, color-stop(0%,#000333), color-stop(9%,#207cca), color-stop(34%,#a0c7e5), color-stop(68%,#a0c7e5), color-stop(95%,#207cca), color-stop(100%,#000333)); - z-index:0; -} - -.tip-group{ - -} diff --git a/assets/chart/pieChart.css b/assets/chart/pieChart.css deleted file mode 100644 index 2cab2153..00000000 --- a/assets/chart/pieChart.css +++ /dev/null @@ -1,48 +0,0 @@ -body { - padding:0px; - margin:0px; -} - -#piechart { - background-color:#fff; - position:relative; - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tips-container { - width : 100%; - height : 25px; - background-color:#fff; - position:absolute; - padding:0px; - margin:0px; -} - -.chart-canvas{ - position:absolute; - background-color:#ffffff; -} - -.tip-color{ - height:25px; - margin-right:5px; - float:left; - color:#fff; - line-height: 25px; - padding:0px 4px; - font-family:Microsoft YaHei, SimSun; - font-size:16px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.tip-content{ - height:25px; - line-height:25px; - float:left; - margin-right:10px; - -webkit-user-select: none; - -webkit-touch-callout: none; -} \ No newline at end of file diff --git a/assets/lottery/box/box.css b/assets/lottery/box/box.css deleted file mode 100644 index 9eb7f917..00000000 --- a/assets/lottery/box/box.css +++ /dev/null @@ -1,382 +0,0 @@ -/*component styles*/ -.chest{ - height:104px; - width:100px; - position: relative; - margin:0 auto; - - -webkit-tap-highlight-color: rgba(0,0,0,0); - -webkit-user-select: none; - -webkit-touch-callout: none; -} - -.chest.still{ - background: url("images/chest_still_small.png") no-repeat; -} - -.chest.animate{ - -webkit-transform:scale(0.65);/**TODO:以后将图片缩小,现在先为了小屏幕,缩小一点**/ -} - -.chest-top { - position: absolute; - z-index: 10; - top:20px; - width:136px; - height:74px; - background: url("images/top.png"); -} - -.chest-bottom { - position: absolute; - z-index: 1; - top: 40px; - width:136px; - height:106px; - background: url("images/bottom.png"); -} - -.animate.waiting > *{ - -webkit-animation-duration: 0.6s; - -webkit-animation-fill-mode: both; - -webkit-animation-timing-function: linear; - -webkit-animation-iteration-count: infinite; -} - -/*使得箱子不会同步播放等待动画,看上去自然些*/ -.animate.waiting:nth-child(even) > *{ - -webkit-animation-delay:0.2s; -} - -.waiting .chest-top { - -webkit-animation-name: topWaiting; - -webkit-transform-origin: 20% 80%; -} - -.waiting .chest-bottom { - -webkit-animation-name: bottomWaiting; -} - - -.chest-opened-top{ - position: absolute; - z-index: -10; - top: 0; - left:-5px; - width:115px; - height:63px; - background: url("images/top_open.png"); - -} - -.prize{ - position: absolute; - z-index: 1000; - top: 200px; - left: 50%; -} - -/*.chest:not(.opening) .prize {*/ -/*display: none;*/ -/*}*/ - -/*.chest:not(.opening) .chest-opened-top {*/ -/*display: none;*/ -/*}*/ - -.glow{ - position: absolute; - top: 20px; - left: -50px; - z-index: 20; - - width:208px; - height:125px; - background: url("images/glow.png"); -} - -/*.chest:not(.opening) .glow {*/ -/*display: none;*/ -/*}*/ - -.opening .glow{ - -webkit-animation-name: glowOpening; -} - - -.opening .chest-top { - -webkit-animation-name: topOpening; -} - -.opening .chest-opened-top { - -webkit-animation-name: topOpening2; - -webkit-transform-origin: right bottom;; -} - -.opening .chest-bottom { - -webkit-animation-name: bottomOpening; - -webkit-transform-origin: center bottom; - -webkit-transform:scale(1,1); -} - -.key{ - position: absolute; - top: 90px; - left: 90px; - z-index: 15; - - width:40px; - height:28px; - background: url("images/key.png"); -} - -.chest:not(.opening) .key { - display: none; -} - -.opening .key{ - -webkit-animation-name: keyOpening; -} - -.animate.opening > *{ - -webkit-animation-duration: 1.4s; - -webkit-animation-fill-mode: both; - -webkit-animation-iteration-count: 1; -} - -/*开始状态*/ -.chest.waiting .prize, .chest.idle .prize{ - display: none; -} - -.chest.waiting .chest-opened-top, .chest.idle .chest-opened-top{ - display: none; -} - -.chest.waiting .glow, .chest.idle .glow{ - display: none; -} - -/*Android结束状态*/ -.end .key{ - display: none; -} - -.end .glow{ - display: none; -} - -.end .chest-top{ - display: none; -} - - -.end .chest-opened-top{ - -webkit-transform:scale(1,1.1) skewX(16deg) translate(0px,2px); -} - -/*animation details*/ -@-webkit-keyframes topWaiting{ - 0%{ - -webkit-transform:rotateZ(-1.5deg); - } - - 20%{ - -webkit-transform:rotateZ(-0.3deg); - } - - 35%{ - -webkit-transform:rotateZ(0.3deg); - } - - 45%{ - -webkit-transform:rotateZ(1.8deg); - } - - 60%{ - -webkit-transform:rotateZ(-1.5deg); - } - - 100%{ - -webkit-transform:rotateZ(-1.5deg); - } - -} - -@-webkit-keyframes bottomWaiting{ - 0%{ - -webkit-transform:rotateZ(0deg); - } - - 20%{ - -webkit-transform:rotateZ(1deg); - } - - 35%{ - -webkit-transform:rotateZ(-1.3deg); - } - - 45%{ - -webkit-transform:rotateZ(2deg); - } - - 60%{ - -webkit-transform:rotateZ(-2.3deg); - } - - 100%{ - -webkit-transform:rotateZ(-2.3deg); - } - -} - -@-webkit-keyframes topOpening{ - 0%{ - -webkit-transform:translate(0px,0px); - opacity:1; - } - - 27%{ - -webkit-transform:translate(0px,0px); - opacity:1; - } - - 36%{ - -webkit-transform:translate(0px,-2px); - } - - 43%{ - -webkit-transform:translate(0px,4px); - } - - 50%{ - -webkit-transform:translate(0px,0px); - opacity:1; - } - 51%{ - -webkit-transform:translate(0px,0px); - opacity:0; - } - - 100%{ - -webkit-transform:translate(0px,0px); - opacity:0; - } - -} - -@-webkit-keyframes topOpening2{ - 0%{ - -webkit-transform:scale(1,1.1) skewX(0deg) translate(0px,0px); - opacity:0; - } - - 50%{ - -webkit-transform:scale(1,1.1) skewX(0deg) translate(0px,0px); - opacity:0; - } - 51%{ - -webkit-transform:scale(1,1.1) skewX(0deg) translate(0px,0px); - opacity:1; - } - - 59%{ - -webkit-transform:scale(1,1.1) skewX(0deg) translate(0px,0px); - opacity:1; - } - - 66%{ - opacity:1; - -webkit-transform:scale(1,1.1) skewX(15deg) translate(0px,2px); - } - - 100%{ - opacity:1; - -webkit-transform:scale(1,1.1) skewX(16deg) translate(0px,2px); - } -} - -@-webkit-keyframes bottomOpening{ - 0%{ - -webkit-transform:scale(1,1); - } - - 27%{ - -webkit-transform:scale(1,1); - } - - 36%{ - -webkit-transform:scale(1,1.03); - } - - 43%{ - -webkit-transform:scale(1,0.95); - } - - 50%{ - -webkit-transform:scale(1,1); - } - - 100%{ - -webkit-transform:scale(1,1); - } - -} - -@-webkit-keyframes keyOpening{ - 0%{ - -webkit-transform:translate(160px,87px ); - opacity:0.5; - animation-timing-function: ease-out; - } - - 27%{ - -webkit-transform:translate(0px,0px); - opacity:1; - animation-timing-function: ease-out; - } - - 75%{ - -webkit-transform:translate(0px,0px); - opacity:0; - } - - 100%{ - -webkit-transform:translate(0px,0px); - opacity:0; - } - -} - -@-webkit-keyframes glowOpening{ - 0%{ - opacity:0; - -webkit-transform:scale(1,1); - } - - 47%{ - opacity:0; - -webkit-transform:scale(1,0.1); - } - - 64%{ - opacity:1; - -webkit-transform:scale(1,1); - } - - 75%{ - opacity:1; - -webkit-transform:scale(1,1); - } - - 95%{ - opacity:0; - -webkit-transform:scale(0.8,0.8); - } - - 100%{ - opacity:0; - -webkit-transform:scale(0.8,0.8); - } - -} diff --git a/assets/lottery/box/images/bottom.png b/assets/lottery/box/images/bottom.png deleted file mode 100644 index c9e642f1693e432ec3f9f8fc35c842b68d5e9e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11266 zcmV+dEdA4oP) zdvsh^eeXZ}%$fJ-ZON7&k}N;s$WAOLF(HAFAtp&FB(Z5IaBtfL%3UoiO445Ly0lHf zq~Vsfz%_SK=!@dq1`3xz40+HzNaT>%v7Oj*{I+a)^swI2yx()qzJHvV(adOOG?Hb< zB>t|YHTImn&)H}8_x$$v_uId{kKhU}I;51h0`Bym2iPuz=z9yBR58R`-GH|nq?9#4 zC)0#*>jQhy2VX;u9|gd4-KSBO-?RgRDE_yqt(D*kK`sz!Lbx-3GUo3z$Z#Bea4&Lj zZ_ckQv;P*$-;KKY^FF2JeLH|1mn%`O5M+*+K?wgqr#|?aL5A_;$nj%FK>@jhKuAWy z4qTQbE=yvXD9dg_z2O0$vf}b2$`yjlf|#jS*smU*{fRs9s5&7-(%iR^cx z`DRSle%_<3*mA!RV)wjHet~$$5hRxo`tTvQoI2B{rwKt|FjLC-$RUI=T-X^&TZp7? zn)O=4fdo^L6eEEoQ;`&*gwE$!RgA=vX#N$FfnZYHHd&Ui=qmDgt3Gv6iSipqkWAQG_U-P} z$Bw!6sWY|t`XO7=_z)Q0Mbwej57t@r!(=#>9wrhOWF6*%vP4-vLdS}ce4;enf>`$3 zJCrqla#5nPmpwr;gwT4Pa?6Px_q4kiC@cw()(-|Drs6h6BaX7?kEiskX2|G=geEV} z&CCH7lb~aXosPwJtg15oy_%w9#V{Q!hOwD7vaYtd)+cJO*`d7e*#!-@U3LVKQr=2n z(5?0U$}N58-1_+O0{xIJ2|y^N<_XH#^g}SNrH2VaKTJimi*OeU13^AfECoba-!e=` z%XzGp^gRe^5T)jt9m;#3Ul5|ar3A@DDfPkEI`x6QZW$PG7auONHPZ112cuCtQ*j&N zq`B-hh64#hKZFe{aVf0Bj2~5$IaWcP3|2K**|^k+E5}8)s43RB4$;we9;+oaUD#aX zBRTb;dXIKN!M00EkSrm3o_6cQhuzZG+nMif&Zv>EAL8ZpL&iE}^ut`O!^P@Y<7-i} z++5GyUT@`^X2(pTtUS;9m4jGw++&3FNXd5f!}BA`MJ0%ovWC$k?$r6cZaLB8mj1rZ z;=_f3geIn~L(Il#w7h=E1foWB0#U$a+p*>9%&3xAP!#zWG*zi=SmL0`HEl&LYKryk zgRE~KG%QMnC`gY~`W zTo6H|l&#up|J$vPyy=!wbIYkSZKd@?&iq9rtshdQ^+SdPqroIo(G=l?{d?_;4mv(z1U7`oi+Qt%Msb`_O_MQ z51IIbeOCRDNa>7*l6a#UqroI&q2xQNV=I9u+n)RrI?M{|8f~;J08z@ePrmx~*5sLA zx~0kLmWiMnpQo)<*@UL#S%-4^!5c|27E0oc8lU0Bv}f^7?$`@yPqA{UB4}^0(q3=H zY%*Nrxe_Js5{W1OXrn%H%uPJv7G}F!`ul53HNemh8F#a^en@CKzNp4n$gm8)s75mF zYF_EsS<01cPkyP{?p0L;E90>=Pyd= z2X8cmFPdUJWPJK#nIO)Uj-6}A&W2L=I#ZKPf3vLG%<2XkH4cq6EhB7LJwTN+HuEHD zqNrL}eNd^Zt|dM-gB-`bwG4z@W%a{&D9L!(Aj3o`MN*e}Ei@^W-R_l+E#I;85$J_q zJFF?LYMo&78Xue2mI<=jSNf#5-j^DVb*ccmH`s~EDbC|_DaVV zo@B1~di`oIH>~z?{c0ahTZxFWtrcmy+NX^x9{u!SEwMvwxrY^@cc}>71L?nBQ+Lajks zZ$OW<`t(z$k^bYg7z@3!2#p(j=>N6DqY6oP%9#oK0`7CAc<4VU?e(v%DeP+Ri>NwZ0@^bs85f)XKAO%3_aW<-@LTIJ1p0^#-DgF5dXNzZ zQe&3@@IKV`lBVHC7u5XLBwzW)3LdyFiZc`HuvVe2--H}`3WPLnQozgST>R_4ra9ki z-m$Xve)Bu_LfT`uq}a5|$IVxdbJg--=@Yv)B3)b10}iy~FBZ+GdFh;)1Lsu^3>lqT zWzlh&C7JoX&wR;4ThNMjteVicLhs8~w~|P7s{mGuVt6tDR-IIRivPLW&KEYvX{*s8 z9wc?}Wz@~T4--#7A^-y3w<@XOM%B&nR+i%tV*R%>MIcB1wT=l`MAXIL#7M!G%|^kC1qx z1_0M0z588zPwoa#jaE*3GBRl9y_?KDJ!a=Cdj$7wNZ?*!WGbZ&{2bG|I}lYTj3Gxz zS{mYfeVd2BePKC+zT)Bbw_C@~M>mykkKo#sQ{1#}oQ>s3q1Hg-R`lf6=%Zuk`)88k zoL8aCW9GnlGvg5jRgu(MB~5l6a|z#KRYw>Z7s#o!t`xF6dr1Hx>6Yo%>*sAOSsrFn z+hTghRKD9C;`oHZXEzyQNIUrgV)50e>pp?(`vCw>o5sT*_V917HM6(3WVF8EM=5h` zUUlA@j;#cxifvpu#kDKFT)T1#hqbg@O5;`}YtYA2XkCv({H44iV`0I8^Jcm{<~&`| zQl(L30pAR)>WH9^Oh4QLy0VuCuvwJuXgdE!22>i>8slAilLNcO#H)P)JOPC--yFkf z2040yq;C-OO@9Kzk3!N10zP%~5bKtNd35ixihdxYF~4~oJ3r6Mz_Nxg?rTT5rW`2% z8t*|`uQznX-k(7rpA;FfS*R4TJH|CDz0_C5OBZx)gvFmUNO9_gqS^fW&#N3buhQi)h69U9QfHM# zbw#E4#*dGac%nHo#CU99=v$dNre^*j1l<^GSgEt*`_?rMGqRQQpul+Z+V=tsVb*>oix@v;WYsY3M#nSuG z0}k}_r_uL(b4HPjuITbuh$IE7BB{6OR9j?8T~R3t^#{Ax*GGl{tC`K3<4Ue6Fm6AGyLqpGWMTs zn9;DywPVYboNYL(bH&)uHpLBV$5_@-CRSlE?3W_kS zL`#)kk*=r|h57?zSMKp?g5-EIdeBTm0YNg@)K<-+Dl@zLf_MT7pY2T0R-+?FPmp+S z5X&7qVB{MR?ZaVB@q4%Qv7#Zu6R)=zmnqZOx2j_=q&+rEiW}C9al_g%mX;$$Mr_vp z4*KXQ`o5nc$Dhb6QW(SnaGK@3bVa2o)E|n_x^j#3mC`YSo9Q;*# z$rDcm6CCLEV-Y%^?ToXzd0KF(?$4oEUWJh-$)w$%9j)TuUR+Hqk@l=FQpe7h3>D1_ zr4QIFDb}}4($PA_`qrt^=S-7=n)jmzZRls7LqGEzNRfAy!XVZ{=!!~_(H}yW2$N1q zlU>7It_Ry6J9ijzEJ(~5a|=fbG(q^Jo#u~u;a8%&c z80Wkuy3ScRFqp3^mbr8sYUxuiG&Bj}q+sRMhW;>_fj|WGBt%`LLP~z13_$amJ)HUp zdc=W(z^PTX<$+mM*u1KiqXR*Xk4N)D^m6nB@t^)ZmTf;kO#Ll*cVoAw_}HyIEL#-f z>3!2f*g|(~ew{MsEAn02Vn3T!kFu^3QY^g>?AN1@oIro&G33N?BOxzMim{NwfdLC$ zy%sz^<1 zmpNb86vRKUeW7p050>qj8{X*kN4B=@0>uqRL^Wa^XV~YUxz<`(uP9bD*r~Rw?CJ6G z-EM1Mh(7uJBk0$D1as$3IQsyk{B*QTQTJO%c;b~cjQFNg2j1?fHMT5Pf z#??5?d|-V8dwP8A9waYBZ|IT}SZ@CTV)!p1beQJ)FrWIZBkbC7*{Qy;M!HAEU62ZK52#&P4|G~I`rfJi2k3Sgy3M_5OQu(rR%hvm(JLTByx3y zHbYme>Ii48h25zm{Q`ZY6J@j;H1Lki-<;$#`fwUQtX}ENzXk+3jP)4MFOglE|n)PAKR{EyyI$+)m1O9JMMz zG(PtTSSSgBM0(YnS+dkwnRYCUe~5wr+4T1X$eok1{y{(A`Q*XNPOisruis_2F#snK~2(sDj zV_BOqbm_xpG1dwP7_yr#Bd zl4NFtyZZt>dd!*^qEEg2f6zy6$MXK4!UUg9GU2et_KbB_kP1LWYw2dTqRP(#igF#t@s)6`3@>3~UaK4V#10 zx&n|P6RATkWHMD*c(5l%4$Ym{r8BYpNFs{8k;#KkwH=iUtAE^1lDvQ z&1#yT7qqIwu%a1qAn7hf4k$v9+&LM2!b-!^Aj9YC@`jBUj!km&np$ccm5rIrwN@M! zW2o9aXwD1K>!+V5?jOYR!GAzZ{5_2SoW*rvK5<(&zudo$Ged?hDJ5KmfK^K;SiNk5 z)k`O^v$~=%MK6Q8#sqiXJ3g%| z;sWio6Rp<)ld3@qvkq#$yKHYt5P4lCb@KnhuoHXRBvbzUlV`+cAYqWgWtKGBFWfa= z)e%7-o_0KP6NCyelOVZsGUFB+nnT$`W>sNRTQx@qg6!$>v0=GuPU1BadF>0pSN7Pl zA$mD_g7|-Y7R%j#hqCroIQ?hXEE?P1dyKuu+Sq%%E#0=9n_OxTV%2P<$nik1wjqa} zLcaFL;5(WV*%XZVRh~Lj&Au}Z#)J9sigF?E`o<)i-G1~*Gs!pV(EA*a5TNP^wR8+c zwdttK{Rp)SvBcKq0-$KB&kW-o62t$l|k-|@ZeO8ufJ}a4$;ShB!2Q4Lzle!AiVy5Ncp*G zy@#f{5YN57j%r7Yj@A)YEuEmc*n;EiT}^u+qG>B~_!sEM{uc~AmDLp)QtUh9;KgHA zc*dvW6^rcpoX7RlYxRhTz*H3{6&L7X6*c|q9y)K~CvQ6W^;rk^Umf6H_XPEe^CQ)v zsKQ9Z7(%KolEyMAf)|R_>m!7JvIN_vNt{(0sUh2gCw=XnbwBR?R$*U?-;TZ%O9JO7LuBa3l{gE8BVZT0wsBvP7OyO)!70nf$ zK@jtj*jC4Nb;zMnLVH#8aYLvUi>TH(%;~w9AbU=G+1y@Jv3On4V8?DTaiG`F@kvu& zh(4=J?)nEr-A}R;enpYvfspjU;J+hJY=%gGp0(I_+R47tF81{}iKN}hQo3S3kh&l> z5y9+;AcHovsKRhi$s-4VMJY~zWWuzdc^;*Z(H|C@Bz{W6+B}Xn=^!~_+EuLl41#E0 zvquh$w@IH3J*uKlSh7O37&0WucsQM{RTYcZ+!^8VXo|1wv1LQ_a`Xi8fB!FrF4_1q zIQGe`E1c(nsI@TmbJ+I*WZ-ZfDb9^pdGXC^UVO8faGDh5QvWX$@sqWL4%dPX)y*2u zotzngZnveVtDm{o`_S0zFA%s8Bz40zu3H{MAGTq#K%%FHsom<1^M{n3H|{@uxLCaz z1eyGG_15^AsvS}jZih=CgJxW{WyX69ZE@?>^&Ij9vTkstB*~o-9`PsgL-g?=$^APq zwcd#O?n5y2sG%#WI+0_$;N+hfdj+a8KV30bSggihb{FVG z{>7?HI@i`DXj)PxtiQm>ouI3;O5Sx-ki^rAjrKYvO>3h&m;clGqU3-g1ZjWl+~LSy zx9tMq24fjS!^SeJx^l3ot(xAk2rr-X&M7>fJ0pB$B_d& z400r=^D9D8g?%Thd2(+(=SGbuQ4treD;65RT_59?_xrFE34x#OuT1Dyf{e9@Ya;6! zn?#ZL2ly=iy)-$Xn43$1ClgTfT;18w-sHe+5*!^25lQG=)ja#lcrw_qqKaiJmgA*{ z&c-C?*IdQQ@F8RzET^9*<@^_7V-B>a2`y2>DIt0BU@iMjP7CCP)D;(s&gKNJWA>~i zS-&jC;w20JDv=B_VRuCsfwTr&;RIcN{DXo779FfvUG;KhfJwwX>7>?_fAd-FPy;c11n@j1F#*AgP<$Nk82~ z3!C4OK`04BVTH+<@qjFM>C{=v{|2kqNAd`w2)%2z>y)H_dQJuaa}wTtjbUu&(%BgS zYBmXWpPa%UsocDN=ds1?`F@gk-v|zuao3I&A^cBU@&9rOhxR!ct#}3Rg&~xLk%*wz zZz7U{YKzXQ8l6V_>~V`j1q2x#nK|~IAFV9kCaJ?@OfVQyh--pIyUr4atSDWvi2lI* zXM?+Et5^Ee1#>dZ?OryuwR37XJf{h}-010^9v_?AYgkk@`&0Gmpp{n#t^9b=x4{g; z5l3}s)O3!3grB``q$^gqiQ=4*$;1jI1gc_q0F8ES&Q>bdf}Bs7NG23gF@@N;0~8%B zNut*B4_xk)ezirPp)D#w5&h9sNxjlNEObxipK`*&(spCSxvJSody}0#J-#^&8=Kmy z*|6Nj-X0$VlhKOnWt*cGzt%!V9y3qqxq!k@SV0lcQl-;cHNPROXHsP(WITgaCY@y# zjYLAAOO>iy1Xb5ZNKI7Z_0O~_nYQ!=r>(_Or#^4-ozWk$FoXjToTB#i>)UH)t5?#3 zSk?x8p(*1RNe)@DLUy%X#(kaZ)c=YGJE}>cyDxx0l48S(nG3Tj#nE%~6Lp2iOpbZu zf|PDd&@FXd!0NTe4j4ZMK=-g2i;%plD#5l5AvRna!d06h@e*IKnO@5@`gK0^4Xi>cZY2YU*6KG~@&RS)t8Wx~{D2qNlZoz>SbLZtfeJ+lNE zSMpZd<&tDB(bLS-|DGNn(S$bV1f+#RAR)4On@+Rg7A{DZdDApO^dNls1|QdNh~lbA zLD~wMRh_`|VPv8np(Ggd+8K`uA}N7GUHFN*jQ)uAIB;w@k8mc?v|5s3#WP#ok_3@K zb2kIy$dnURn$RaK)VuN{s)d%MQj+B6tqi*2y;I1thEVjYRt$Lailo%QUg{KG};&T?V6b+qhPNMeb|btQ772dL?i|S zld$*r?7w+Qg8bcgU7p{2kD$>hAgCh8EwpVK<Pihw!t+Y#&l}}QF9V`%lk;3a^Q@=3DLfpl~f6fHN+wf(EwV= zvY=~ZGU7U#65MvXmo2w@v+k``HPI7*=T8Hw?uPR3iz(|M^^cfXv`oQdhUES_T-%2E z@P9kVQ~z>Z9!Y8(W;VCi%!?$s2}qr-)p<)ST54v0w2Ntl+)S*Du4uH+U*MI4kUo^u zVK{P195U}07K@XJB}qh63a{79vp;U;=z;m`uv}!UMIa$q)Rg4E zZkyn?+r7A4MwVOhnI+k>gR`t0%|%IqC^FoAe5{&|#S)t;AYmf@L^E~UhPnOs-{k3k zxjwJ_d`SY+2}rN^8cQtf7Ngf)YMD&2G%~|OMr>xD9J_ky7C>hphLS}0y@A$U3o#Qo zQsB@~t`4ItO&}aPM-Ei+>wm51?D2&Wu1!3S000ZUNkl%GU>{dh-SoeW9l znvMwh`5_LAiN@*_D;Fox6%8flO%st}D_YdVVkD!8tgZ+qrZ;R`?6`Q@Smj{F3};>f zRmF5;0A+O;r9MS8tZ<;KmY1KYUyzk^vsnx6w3F1KS_sYTUVjt=q68V`#HpFE-S(QAxOl0h@^Cz@HaZ5W^^Nis=9z??|3sLI04YijA~_4D079{{V4 zoV4OQP>ZV?!UIn1t;SgWtxt{dz`r#y8d2u7VcW%ovL=MmdJt2q5$8E`%)x;lHSzlH z$~N|!4P~vxq?zQwOipa^r{m}l92){D@#!LUedkrZUIurw2*Z6zXp80(k~n}Ag{3#o@b&gK^}T> zxbKlWT6PE_9y~rKf#M{IM^#>XdTn0ajF&PWl0@xhPCgrAS+yDIx1eH}2GtcOb^I(Q zi<9v_D}7S1rsA_M9CAC&>@yJ!E1Ws*>v_c6~B;USzN9!Sk@ydvfCXpoxfLIjAx^0-y}COzOzDOKA` zS(3yHjkrI00$>J7GM3~(ub)G6%niwf;xw|r9nEo+h>9P9y+i`=LLzt4&T1mN)N&zF z)>^~`siReB$Eu5pPB4a%gZ+lZh^GvVA%xr|bbaSvJU{!4Z8=m#5QBN%KYiqmmTnL` zj*rRO5oS!j7@WOgVvuO)`*oxLO(?!k2nK5{y z9|jG#)dR9iB6q2JsB1pfq8R41@zF!i^*{Q^ZOvV%mR-;F$WE9hiFUGz1e7ER7&E$; zGfCnac;nNd_=^!o$+Z?Y-sI=*ZIgM{LObn5J64^$Z$}Y71u}X2ZO;PD>9tpM2zwmagY| z*jY#t6J$g3Bp#u}ITBG+0d0vc==-&$-Y;#i2;a6x^B&t+VS9lSN{6vOr^bXnh>eEYc+Gei($e^&(oMwX*3pt~kOT0x*NwySP zi-bTs<3KxJWw@xBWuf^5@ge0-t4Qt;U#Kj)c`32r^PD^GYWe=w4%7YfB}r#%6`i#q zZu?XqyZ*(yx1O5LNleXAuqY5$_|G3V@x(d%jF?2BwaCOR7Rp7f#9HX17WA_Yw6l)s zWue(^GRY9cqae4NQ^8$t^)ONn3%FX_*Du7t>n&&PQfi3w_Xre$t8bn)9~Z z&V_)TilXnVWXZwhfQyzX@#ycieEF`cP1|ki^d+nx8^oKml(i)ONRm_iQ+({&APr_{ zv4O*8LS5m-v?z+yt&mXo_y1VL%M%vjnn4a&`0#fn)RLE4&1H9sKHzI=+9f9w58yav{UtvuO(e-D5@f*wDwU1w%+KL1dRAm7SIc&d-{6 zak=86ZXy5v?|B}5=?~l3xSXB2S!pfXhKnW~Wl-ZVQ)5?Yt(}g8C=O%GgsPPhqGyfp zb6d4`(X7RWYeU?ne?{ruQl61!MPT=aJglp@LM zZNpH8BmhoRPRe1Cg;NVbj$CVDcj(-C*A#beo5;5o6Ds;y8*(VeS`Y`J54vp<;>$N>xbSt~M9!de*E1?;qa zX7sX&T`VLn*;`89|2@y6haYI`T(d}d5Xk1YuKD- zv@&Y}a!f@(XN5p%YvBtCA5v^@dSGJ4c9CyaTvCDny!$(zPrmr+wzhY-DsGrgUA%SM zDWG_oKrzfV+gg#ehzew%8F}7AGZ(gC)LOw|nF*AEkSKhRWt;LARc;iA;DQPYGM^uiUv2e84;t{%b z|6e@c{~HnUyjXZk2m(gp(Zl9tZimI(oyjH1$0=$&OR2SJL}CJmZRU8A*$!$p zYax9CIiezmP2_HunTuFlaJt{jtB33a!X}V%yGal1xKv3wmoqNWqQuhp>K!d#zGJPj zJwp-zwZn_Lu{yi;gf;BIvVI6%C`3japb37lr-o;SE!=jycc!&S0iz0XP=%N%40~rI zo&JD{R}R_f>9-J1C?MG-Q;7%PX*#1E-ZBf4!CyYt{}m}(-JrX(mSo%p-XWxBLCJaI z)x}AwuW>?PkS&_R@BhJQ-nnELUhhGc|6;6dy-M9M~FiEXKHiAq5%E zu@D7_#Rab)adPC8jX?S}V(H}p+aG$i{~hDD&J}O@5R<_pcdod{W>R+DdyPVFE=dN~ zje{u81c6=$tbnS{2#g3ACu=QaVa|mVjE<|k{-%>7r}9_!Nhx=zdT{#{olzc_4M70D zdS}b`ttN4QF_PGC?gcPNU2c4xMnC}v3jDDl>Kf560nLoSY-a2TR92Um2){BT)W5HN-sfwIeLf?Sg1S&#yc zq;J5+frBo3dW$X)pVy-0D==``5d`3oJ6m58;I^9JQ=5&=YYGVxiz*yB=HkG?D*S;W z?`AaeG9IjClawncjmv6?$w1WtTT`a$U2zTf<41Jvy+$Ep8+?8fue@5z=`#-E@gfN! zl5UW@R6Tel(6s=#EG2=+Lza>Lt_u2$0KI(SU_kF)2aL~PU}Ru2-^J8_WnFZ7CF>t~ZN9u+ zYQD`bAhr?eL6WruAY+it* zL}KRRA4UJcRG<+yHaV8g4~voxNEA)T8>WE|A|sIFnLhR{E3bNR*m`%iy(+)7$pcqr z-*O#hneTMJs(cfA^2+sm=?X$UhkWZ1u3_YIE@0h0>fJ}Z+=wkeN&aFcdEcoe{KZFT zLkeb={b5w-uzK)x1K9^-akXPrD)Vs?Bj~!LhjUXYQ%d=EEyXh zO);pVZYd9Ve||=O<+ojh1=H#8y3u>PQlAbJL;5R@g7{|uJ)XYJ3?VU3i9C-H4qPl3 zh(;D73KzK3d~!O4p@4OKJ~oT3A~VoKtF9d@Caf>4fWZsgrz4OW9P+zAjCuR_@CYtS zaIPdG;HC`67u{EbHd@m|c>NMB(VMu;0)-?tUyXrWPW???44kt=YeQ35Gv6`YzIk$P zEw_Yc$NQ(wvbqnxOrc;CA0~w=B?d`G12hOJzCp8ijrzm^LB;Es#uC66Nl^EK-5vOxSF0 zq4q*zulyhPo-mrnSdwss$=;fUi~5y=mQ4pvAM(}71oVYN|GGdn})X)8$7AkbMPS`6B2H|ZHi z+GhqmBfE#nVIb#;?tT!)7kxckW*k<9|M;dVM51hSK~OvLMnI+{*!HFPXT%u#aYqsl zasq}U#Z%_U0HJB1nvq2Ad7%wl&;FaOM2$}c#mNz zv#W!Gxq3Lwi)VZcU%MhSzwXBsq_H0VW0yD9`Uk8G8YQ{!OEe zf?+10Z5Q5=>o;Rlt*|m2c+?n9J$+JSD?}82lKloasNSHe=ZkgPEC1SK(n5OG&9ib7 z5_nW}dV;(%9(M>`nLzf`5~e44z7c6%WoxSfdodEJ|H?~t(eC>ujs%&KdD2;h@?-Iy zB36Ap?zrIWqw}~c;V4e1E^LG6V)^C}d=`uL*u$*5(7dWBfAr%0_=aRcs)`g$$G13ZZT8|8G@sZvk|dVn*E=-G7isi_p!__GQD2=lEGBYP#k|KJ6JLnf&xT9Troo_@#DM=3yh#GW&#jsTtuGhGV~s1cyi zU|^9%lY|I;I7`!-FE?E>jm>o&MdBQ)?d{y5;y+1&2a!y{fGvNebzmXf(2%kv$E?+82IwPguhznyBoo zNqKAQUvpt+Us!M`=(%|PQ3f9@Zi(AOAq4?BGNO7yU+OK-ius4FQ8kn#jUz{`@=q3X z_Ev2u!PH~mDakhq?~fO26yU$TO_wL6+~)@l!<<4kC_~GfLi+%1k>&fN#mH@PunP-J zbT?-f+ZI;>ZLV+?D%tQD3|AF?Y6@^!xGX;CGv?~;{r0IJ$3=5X)>x=iTOW#~QHVcW zl{ty!8Gim&NQZ;U-2EXbH~j;m;(b$hW!yt_Mm;#$&?sk$Ba^+gLzzs=4gC1*o2CL8;$6GYwYiFdMTh(f4^*8%s4|! z+C%CaBP9JjvsVqY3rm1IeaJD?2R9*lGVdP2;u^uL0rzT?YQ1DI3q1~Y&TD4nZ_T?= z2Jv`Setkna_9Ujn@l`wE+w#2e^x6)sD$B3hMB|LeNiMOOWIlqNO`N=8EIXF806mMy zJf%O?{gB`N`98-Dx+Tr6eC%IaN49F@wePSkmHsQE)?k}RxPBiKSQ zi`WY%O3%m9#{&|tt9e%J$IR*FFj$RCc2IVHPjQ<)M$x^kLdcW{!n2Cax^keFA0YF? z8WDaI5?MU!)ofq%cd!NaTv(eKN-BoXXCW6vFq9?>!|t&Vp4lT?%JzEZ#$cF+{$*20 z`MM^3Yjx5A^_q0kaZS;f(F~?=LD!dSrM}d`YZW+MomXah^2mXgl9G081>870ots93 zp#Mi>1uB-Uq@13E>b2IQ|a#reNdkn;0hwGzx331Hc_WfX%Y;8NuFYoM%^d@PqB-)~qu zN*GeVXcn>`ah`5Ft{x$ZQ% z5+7u$`OK|CO7{17k^b$N+-GL>tOH?7$2_v?x0rvpm}5AqgqkiVNE z?rc+T^F*fF?;z&Qy`Eb#2Jvrsu01AJjA$veBPHDuB=FzVtW&goGt=F&2%*7=&0>U2 z1NIf%MNNC2_cmBzndl?Nv*@8Z3$A#F;MNiZjz)dqsFGT?{C+Ued6qo_M!IUv=Hj=@ zTDmT)pSi9x9w}E@up!FBW;v<&?JQ9DGP>tGOTb6!!ZHF|Al0gVP0v9 z=0y)sK1?nM?N$iTa3KT^Ami4^f3r^^)yE?%XsDI}7-X^CaWz^RUw9ppWs4f>< zg^|?IZ|1K$NPcrPUP*@HJU(;t+GX9Oj=!>zA8f{|ctF~{Zt-H$g@z4aRGtOT$-S@~ zx$QkwaZuB%0{|SGa)TpvFv40*+TC>rzw#nE4%mQKB!nT?mq0W(4`xiILY?1;%}|4~ zV4VIY3Tx&jRXy@`+Cvx{D!~GVCH|EKXq|b8g=2uFgw>s%iX{MX$pm%PyIw4xTRzhadEt)GhSYww&*u$XD7` z!ZbxpP$PYmI^Mv4v^>2K-NLJeGy{aV_uyBJ}4wMuZA{upLt(HR%PFuIhRv5|6Z>Am7EGDsmm6Rr^k zt3E6RzUvE=O=}X0cdnPF)d^K^@-FC@Q58ZrN zr!yQ8M3=6B1wnv5mBpw3&d{koq7yyozFSk(;Ac5VlicXC_Zo~6?Wdu4L7TCKln43h zN^IGx0cLvAaSc-&|1I1<7U8u|&tPF~>L-~{S0a^Jf~QhT@~O#gcC z$p=iMO+PCN!A8rMu~(s)$>~#{C~}}d-y#)3p0fr7`?_`!ZCQICB`G!Kh62=8s6p@0 z8=Ji0jKqVWF&C9Y25BU06TjZ#8nRPNcc#6z%km*+Beeo-7ltXpg$YX$5%>i43&G45 zz$dPV)*410I26onIK&fxi2CkA_2c{A!O4WSi#d*4!TGZ)Zrm#ZUQq=jb#eVvnN{=Z zZxMDUM|b5Q4V;r>x^F3lyZbtS`!K*Z*n&4c#9lEC@pQZR%td=vgFS^rRhn}>e=!Z2 z(_aNrs3rf79l|h{m?pi^&PM{eXd6r^PE2*Dc6u;PQs!pTO!KLUppPA(DMLrR|C`jN zX%9(!;buPq-yIhpkJ7ICqoaCI>6Qg~GuZZ&9mVi!h=_it{k?Sox}5CfL?MCi#1te{ zKSSa!f5%oa{0++AY);!4!4Ap~`?mxm@2XsQ7Yhr_m)p$m!^kW^Q1O3Rx8tQFxF{+S z@H*zG-%OsY!$CL61w2y1j;&}^{%nssjv`Ooy78bpbXP3K(DL}_zItL8T^UG}2?zxp zK#pORWoVA7Ib~jR#P7t9(8t;}ySmbyxJM(v#NK$7g^u9}woWqbAV{u_PUfKV!^BS- z3aS<*uu4-*g)x;e&&v7pZzJZAiQs)YUj!>B*6sQb7%G`6L)@@=FuRfbexF(P;s*(# zy<^dy;IxpzQ;ty8?ps9ULsM8L6m_g8Y$(}`j_87&yqY}%(4xH4TVe?wxN6TVI`gbk zIN(Apr_-EIEnhNhBW_{s-&Wx7sIPYRAc4F24Y<6N*bU4r z=A=JxvgZ>#s~GPxlFMX+9LM@_XQEI;V5e1n(?5?w__5wQ7XFKDrH#2iog*Pt$%9c@ ze{5hub&}fPS~TIwJ38_Odc#<3Tnors8p*3mQoZ82j7KOKZ{cJa-<#ypekJLNR`!BOVG8Q&>qOfEnOq7$USumhZNs^sFU@6bIlSaHtdF3 z7F9NjLOBWIfp%+6PJ%nmX;~-23_(`$%)&;O+PJAArh9G1#cNYDcWPD?-`ZXHS@G(d zH7Gc#3U0{~=je|LR4O>PXehkESUSBUZ5PMqcS|yj5?UJE82=59qfo$t>=kHcYTX72oapuWrfgA>40=|cu1 zYy?D=M0&?MjTPN09{hv{hNfM&j_ImS^?8r2ylM!t>%Bf6&3}6Kd1)Et#3kic@95o5F#0vR0_eh zBXx#c5F*G*u0ZI+A6ow#daU~0i@9eKOv-4)zN ziU9Ejf8-CgCJTXAxbow};7L3xX1}BL%*!t0gJO&9eou+TV>bxKt+{a+Br8@ZDPX2!s$4e^G37 z^s8X82$A9FA}87nU_4=@k28A~wIUR*p-P0(h78Jogi@6LafelD4~|IObW`P9S10i- z>*AUpM;On_`>pa1jFTL{)|W<8WgE38yOV!tsy|2As#uQXIO7mR+?b&$DO-OVgUTp8 z&5n_Wb+;+bi$uMSaxb8`71RF5@{T$)SP6niKgta$|-TD|Ik*T zA;M9Fl@i|D)B$Po>&6u)#99*$BNf8`bi!oru_@Wf_R!CjJuOYFF1zw&wd!{wo}lEr z!!oiAOl0zM=wzvrRJ`)19W&?MW5Z>zkaq_Qo%o*z34P0d!5n0J!e#nC&`0d<>_0!! zyMZwDgFM}~N-j*m(u_0~2N4ee)@NS-b~cT~8x+q2Ot}nG zeFm(!Y$2sHPSmoRj@e`tper4*_9)dEw?2j?M2ppys56fvW{mX9F==3yUmTvognWLT zLboTzcK4~|Uv@ztRTVKU>5m7QU55ADi=1{oZUk7*rC_KIfK0f9Ln({1Igc zbo&JV!^>m;rh)LVo7Yx-6NE}%c)fCu4%6;9S4(`?H=FS8%}}O8r@05&f*DOU!%&dD=(s0h1Wv_OuV1pT*ThDXvT<-SqP(#`bxk~l_0EV zevzSgZ*h=>hEoy#Q zk}(JL7sJntr+ZHw-iHdvJ(hHon|-VSQ-g}j?{}u)UA*dMRy_v;c!K@}D0bn28Ri4v zeHjyw26G*$tG_4f)dn5f6qYiz_F&T?py)OnxQuCp$~Ri;r3Y}yfBu5t*sab^Q>}F7 z#Ef6!aMrLT-k^E%=bYMB6oIEis%q-<4G`r=nd}JV&>K+DFbH0~kWzS777!AmP=NJu zz_(;kD`Bjo>G0M$I#CI(Ed)|fsYui@?{3?Yy&L$r44Y%K6O@BTUMwbT`ukog&@~gK zQs9HNR=95YWnWFeJfAxE9>FMt!P>P^Ua#_wGxtx6e!wFQ9&E;XfhJOJF#(zzG`HIQ zl0wIAz|JlWc3v@uVUN^fo4k_G3)+x1WjXzYQ>Pf)FUy2Ko&1@Ye&6~x2h+M`74Ul} z_?I!Ev!MS{@JdQco+0LY5Wp!&>at9Vqwr|-C@g68jkWC#6w=C5hRGQXlXu991D0}_ zF4f)tWyiWVyz4R=Y)N~Kpgh&(ZZhjUqT20t(x-G2jkwqt?%cgi$l|@Pw@c#;e5qqph?|8r&~j#KKw<$keg@4|81*!Oe8%8gI|dON z9^?yGJ2+IA9ic)h6|Ur`79uursDnl>9UTNO*Qc>O3y?Qc%&#?jrwv%lWLJ(%e6@8i z=RFUZ&#f^%yRbq_A>5M!+eX3(=D-7)_?MILvqA-bYdmI6Aar^D+a5S5uZkehFqo-Y zIE_mruH3j}8%~=nsZ%$FzVv`$5-Wcw~+E*TuGr2lWr*K)l1k?LrAf)C)ft)vzcc=k4jB{FgS84 zn`W)75VYt3T6F;e8lJ%*{@j+%q`d-}oL@TEt!q&Lmy!}WL*Xs`G_dtGwkeu|p0SZj zccWkSaS`L*JX!<#S$u)32H54kAB*Maqm6a34oQDdaq(7B;f>IU{EPI}^)N((8mK0- zVthx$Eo4~+Se2XcN;~<1Mi1i4)QFxV1KF&L*=K`@{Io2#{~b*T7lW(n6OsEARkB6O zwpmLf1S>`Q$0R=0YpPCGx$s9@vD0-Elw)+!%b~!xRMqG8yb)T5P|Q82bENma$&|Lj zb^hyhz*U>uhZy+Y~HIBqL(>3_`i!s7 z#XOPeuc64c^v{Kzib%6{^Xy5OfMokG(PVAqJ#CpZfL|_XOtDnQ_^=#pW;43W^nLSc z@C-US^jTY^P7j;p=3!KBBVOmjcCS~PCEIN363%ozs#4ejiX4CY<(b;62j%04t&9Yb zze`en$d-|r#GAxDSs2Vz^q9he-KZydwj_p7$Xr_jY;mPw*K#MHaFf(dyZ^pa!noSl zcn>?@_B#WVH^T4y2r+M(c9u%<0e{%pa}NIwVGDOx4|lc`DJpnDJWet*x<`VP+&agK z$C>Ej%vq?7CYd;kOWnA*#-G*h!4;NZwSim82!b*Q_hGm6b?2b!k$-sJ+ zVP(8RzfSPWHUlw~MG>+j5j_|C3>xSV7c|>UT$jmz#k7ksz7~)v3*3?Icg^QMe0ZJb zDry`aYqI=7V?c_^yTA@Q1l(`5LWx-UUU#*`<)I%9ykLFpa*5=2t?Y9&YrBQ-JbP8g z);pe!P7z12&i=`?ZQ`U!7A#{5QOC7rJO;Jj9z_yEjQRNYK5M^tcU{ncksz(Z zuDM8hS}b^~jAtA-v{B-Ns=^W3K1!xy%X@oWO;+3;`tbvoqQwQruK)xUSVsjX0OyFB z<@S8gC~kO%^7Fx+?OEc2E`i8{oMXWQcDxt%nSRK7L+&sNA-dZc3_SVq7T^Hvabi6VoM|g@ARCxh1$Rl^QxW5A9Y^YU^lSDVV7gy z+QL?yVE+Lz5Lt*l%-= zI&<$K*Lq>ril2ew%A;-sU-IxBD~Un4i0cX_=pvLARyfhZY1-nd5`&3Udcn0!L0k=t z2l_E&AU*F?97c4lBJVr2bYQ#P9+P&9oaSKYxCNGB=keY#AE~L_CbL7z?d36d>sL~g zo0}fdC$0kER^vA%xh*_<5tQk?(+b98*LqIpO53a4^tROyslmI=9vcG~-}T&G**Ybp zlqmkc2ljHlEh4oMGT)m=ia6by*EGs5SzwpIdE}D%rtNo|1`FnxsjkM%OhpzKTi%#r z2D;3SV)LS*-gGtP_A`Tts!XQIY=e_37}P@ijtyg{X_~y}j%vGVrr4A?YUW4|>KayQ zv(@(6QJQJ);8neHEo}WPdPL9OTh%?)cxJf&Vp(t|rDgGYV$9=O!Uhf3>0T;{ei?35 zEOOZKzN$c`qkmOh=!~XbcE;^Nr8@=^1y$DL{t-0jNSqbl)Nx0cZ0#GNy6`C#6{~ZLN&Q52d4pt1Ulq8X*bc z)O8B|eFFdZARt{fN`F^((&#DmtGJZgYmKK5 zKIZ}dJ4kEDw}bz1Zy`$9r5HD(X%-t6g$AEU*WzlLeHP{r>J}?Pwda>tc^6D02_t_z zH#DCf+B{XZUu0E-#p1tr*gkygCZmmS3yWs!W8fYDmjp-w)9C1ubfcza5j6WV6H~El zA5S0j$zK_uKputD#$=RwHd~8YS#&y!R4Bx&a0ikR4XNXiF1b#mdDp*`M<@>vvvuI3Wb|j`u4ZNcecc;f%qLm$Oqp(K+l$Y4ILE5&j(Y(YJ z-YBv17;Javh}qb%gLN9DBT#~bfy=IbqVHP4@#<=#-V)YjXKOIezgc-EoL{>KqFj=s zkGil;p4>~+jm$BPnB|4=6#KiAHbrLm*gx>vN`~V-LuR4=q=;jVvV0$GE#02<*^<~e z&3|kwrGBD~Vwo(AlwXyeb0x30PSIk8dcM>nKa_Qkif73@1%6&YhlM2}k!aJ*n3B69 zxb*epsG{RcdkH+IN-6V5q1|ou)%peB?`~CiDg7yDOa($11lF*uU>Kf=Yu5jJMPyz_ zP!|;OORzge6~vT@f=!%fd94I$e7Q;-Zjp%b)%tr|8yCYAXn)w(^^!! zxLzo0pV1kMO(4GYLuQTq>#gQp6qV?EwrL+^{58_nlcxKM>xB#`mpX<>VGS(cF zo5{iwM%|QI0nlm%l}XDTdOHjCXBk8UUWGd#}ISmC|MclGdaz`xHLm9XRlwVncq^ zv97&w@noE^_bJ9LGb&V1_nx&AP+jp7o4O~4KollyXfHjqMe6L&82A{+|Aeo8W5B9* z-rq(V#FNE&vqL2Qw^V$Q17i6ltT2y3FH@$8n;EKLy*~S>rK$)Oh-LOYYtXHQNbZ)F zS?Lrx$+fr9(|u)D!-5rPizGZ(qb7kE;Hoo7vgAa|HBD{P9o#m-pb;pBL$q!^Hm1dk zK@W|4h-3($9Y-wb14%Zvj@@M&`YX`=4AN#oFCS)~7cEeqQ?#s3lJU;{H(VvyD};E@ zeq4u-U28m(_aAG~I~%r6`>>k}ZApLmw~=wLJ-|(PZ>{EAwHq69g8Y^}quS*gY`(tk zFsMVK52QUF8=mCQ8h72vO&5xe!(lq;N(4GwW;IvLG{x?h6?}L%3VTTAod3DiboAx; zks$?g8n8m>aCVlLVU5$c8}bqE3sevNmeX<{^p-nund$jdp_T23m`xvIp=;5> zu5|PKy3)!Ad~KkSy}&jX^F7amV%w#see0^oLzoJsdOw@PzF4gi;#-F%rZ$_skwe^k zfED<`t2h_3gb;wW+bSXMnNSQAv7BB>vwq}j@_?CE4^6n?EX&&P2$`cZ%;h&#SH1Un z-FBHhW3`4!9Cchs2Dg*V8iRSnhfG&T7sIu04(0!;;m4p*EWgf2*m~X?Z)bRrG6T2e z#r$tsUqegZp5EY@s3F)dL@1UQm;A*AHX*P7>-_`8k5kipCBaq9p_8kBG4ph+*K#tv zN>;1E_TW7nZZ#rsBVsqxD#5B_;gb<8-~LeqqfL#B*0M&4W||!#Y^#r{VxF)Oee#Aw z4(TG=AmNu#W1gn!J)|@4+@mN4BIjwMDy6b!FMv9L!{QfnnHIFP!p&ky>0We0kX-^iB2;?SQ;3|H7`5boto?+W@IL{?mx{L2M<;ll@c3G@e%pCeP&Vw zE@0KjKY|saKYMs8ep|e$jQ61y#9>YS$VraHi*0e?~Xi*Qpv%bt$5fWYq6TA*g$nLIuao=Pw%I$eTwU;Gx6z7_zBvC!Me(AL zQtMzES^IEJa6Zf4I%o`bz7#FRq36jlc$V>BO1mJ)5*iD!On{NB4 zUkC^DAM^RKVAMww8Cr_;mtYxg-%snjzOtZPT*J7#QEMeKMiW!_!G%?+CS3gVTN_bf z@|D`Z0W(zmZGwIemqp_^UV7>jwLhBd#{C-@rWbV80_G=@bQVEg7^mA=_F%oW%syqp zoqeF<8aj%oNc{l+>#t`-RM8&E{nTODFLIMZp@zQZ2tX;OaZJ*yF|GeCX(y}Cgxes4 zCQB@JRHg5t<>Mh7tlj7SAWAB6=t?>cE}p}uhk)i7j!MBOPK;*eSE+Usgh3_O0rySO z9X-8y-Mb@bxzUv^*TL45NTR1>v_90?z9(M-B=Ye@A9JV%hyVFLPdBRf1$MC89A7}Q z==z1=b;##<8te!T!417e_{ybG#0C4T}Di@>b-RdSNvqQ zu2Ez+fEW`$G@tSqrR5%GN%45$6jhTR6u;b&R{026p5FCN=jMu1mRyt2@&O#|_VS6O zYAcQ0E@v%1)Yp{JgX{a&M1qh|R8^|%bs$9gk-O^F)j?}Q49Llv&NpicyfF`r8bhcG z`HUZnEtQi>n)fOAxDI+6@J2G>+$x*kg5bcBx4^b=K@eVGoON%)C*gVY2eYk%t$2J> zsawrFo_qt@S8M#qfW-_%r1qp#2XM5S2$n}_OPB7@&q|h%?~hnz$o{_JP(2K$+}=JM>x0 zf@QDJk;uh|Ppn%IOe914R?-1h32F9MhJ}xW@Tfp065QzchyNkw@06Z@y|dy z0UwAnn33r!-cB}B);OBhhUu>3N_|BMgS~y|I5BS3=tH~Tlkk&8SgAlms}_#KX;R&< z0I+CzO?=b(ou7D#c0WRE$Zlt{zdLXxynuQ69Hf<+BN_x=prdAKVI*kW4@Jk>5!6|0 z|5i@41t3|GtAYc2L8b@fz6{P|{|4_4muGLTqA&GH2fcekxxdV@;6+@VRTKxr8xZMH zVDC=rLzUoB0wy%1?UZ8^K6TGQDENO7{hd(CWH?EgQg68qq^V53kVOeKIxFXm_<;i= z7>rTxwAMFrX^o2*WE3{YQX&Ll_fYAi9+XkC8*bx_&@%QRNj%xb$kN$M+Rlp}CMyn& zqRr%(DGuIfKR$`UJQ-k3ep{Th)Z4_clp#$@JB)87>(g|WtG}=*F*T%@KDFUJdp}RnwGa1P zymf&l7H%cS%wxpaiiTU3o)~P{u17VyfhMwwa0|-3&Etccpe9T*V-j0$76YrS&AMQl z_3X~wCf(E-$UsW`dbCKL4bqZYNCinNTRw)bBiGfPu_69iMR(EB@GOp&m#Pu$H~R~u zntIxvyDO#!;v!MskowK3sv-8&62^bCIaP308V0rK+wr3wX1mR3uwQJaCBjjwUo58| zxqZ!d{dkoT-_9vKcx$$dS0AeJ^Q(r4PPp(5q#3EGk^Ef}ral*uE*nTSAal!alAKd! zux@BcRsl!4LwXN&EQ){K>@}6$YYZ=bt`(>ez2DQv3Tb@3T{RM$N(h+RFBucq@`CPz z&Wg3|qADlr!&U(SV=@&D^vd5G9q)9_v_b`9wE>w2C9jbp9y~5%{SirDc*TT$*8x$- zJSt7v5fNi6oIDx^FTA3l-xyW5s>j#Q1)9fz-mEc_oC|H((wLoLpMvS$K*L zc9nZgP{X8xJkIA|Ks(DRnn)wepXFFzO>vnd+4;}c_d~vYY|UW-?JR*z~!ftC?O~Fc1gyfvlZSp2)qSXjtkEdBMwu zqAR+hC-uXY*orw3*W+p%OcRa6krn-;d>Ljc+lVcI^Q0)i>5LcmgYIyCk1&3(7p?AE zmOKOM34}E7Ytd1f=KHKiLFFi!EB=oh@3oDmlTKM^szcN^e84?BqMGp!qpRvQ5uEvI zI4Wh*o$rtYkQ+DxZT9*n`SV!ysjN_92qx0Eb)#5bYp$f(elpVC+#A||(`~@UzyeP8bNXg!M{oK`txDCsSsrI|P1xgDj;jgm)W;-KyEn*_ zX6GS_tO#(pWp0(A4>TA~e&jxZ3 zR8`i_ubi`Y2%}gY<^6P>2L;Q*`x7|;aPm?#zeEyE1mXNVUjbExMAg$Kdb^n%S1E;H zhvIIm00So}7ghHxzrRv1E#ATHVejAM&c&#uT%Y>Wd$rUm>g*rR9(Y!g%D&qfcVJQy ziK#qOU^0~$$?I)BZg=aZt@W6i|HmJDf8<@Z03o4#2n;ZDDV(i-4#Bspt5W&6Qm!!% zKH&^AOQk&f_;J?E4#5mFrILQqjkCrh`befOJf*us}~5A#$MEcZ%Hk^#jTaxLJ!u&HIn= zDgF2CYN3V)I8{D?jpo002^LR#mWk|Ev_3#rW^k_Xpy$_V74}(1ip0uZ!6vQ&YSMfL z#w`%g+eIO(SQ0_jFuK1VQ>WXsJRNO2vS@smyYTqW05U$v7oXhkXIK%;P#$`3Q_1V{ z)qFaq$&i|@h-R~>po0_O(vY!3I(obm(GJlHobvo?TTW=TpzDjm&#xuY)yJi&*jqe( zeCfqG;4h)dRAz__SYXU}0cYKy5Ud*DvDt#bjyz4{oM*RXuQxTn{%4|~Q2%fw;_b1^ zrqC4wq`66wViptf!ONDN`4Zj)2d5Dp|^ z$GI7^-uZI+5f5qhQI5}Ch#dNFSDFwG0z(Zq2&oV^)S<8K*=C;0(Zwdl$6_PD$6cP> zUsiX+^#!X5m+?f$@IG#K-K&8lwa+PAzS&>5)xzItbgmR_mN52x*D~fy5-M@FZ5~~Jle%BT|s)E=MPAQ^?zgTdeidc%1&waCj(hLt3p9(Z$2LT zw`leMs_4odbijsi^~EEz6_H*)aruV zw!(VOJUkdwjdp+N58U4Wg_bt<*pA{9_XuPE^P+_qYy3;Um?=u4iS^{P=d#Q*%iUmd z<0#yCfrz?QEUW_qA8<2bo#{+Yjm?|MyF;VIF;)(X**4ObV>=3k=s3gS{C*dx1 zfBw;$uwd6O2U=Xu*yp~zd6tHM=$=f61z*k3r!tu;#24OiKV8PUZcV5m30r9$c0bpN zHB`!Bg;KRld}ld(KloakNar&R{cUF!Rl4&byvAi3B&GC#VQ!^8T*=gNVZP|;tlTCAX-hrmHdTOV=Yqw6$VBIH5tIkeH>2_{k0wXJumauohImU8wtmO;oP4!# z@a~=~EkPJI^64{i!vkCYxxxKJO?*zr)uJIhLhSseew<5l$fHg)mqqPfoVq@O=p7)f zuf^ka3{Li0qwOk}v2g94B4Vr|y!4NMX=gTUjRgCwU29WH#U0mtd0u(T!)Wfz_T&nI z0t7w8h-CFPuDBG?s-u+R!2T{)dBdgk!5^z!AHDEjVduY4S1jmh~Le)Ueeld81?WgR%0o}VG*&O15uR-_KG)}P*6 zlK44w^6T16={;{m#=9L|a0#uKpvk5Qs62)ECvOw|CHrS|J*dxXarD4i(%kk#0<)HE z#b>>fRAcFb`ZH=!qPFBd$J-MY&fCDDWXWFkvLP`@U{R?K=Q8m?zxRw*HN@03EmN?@ zW5QfQLoyYa7i01Qlf!+xo3Fbj4eSaHv;x4OKGW`uCWLEUMd3&wucRQykJ@>Ns4hU` zPu+RQeP7& z8w%|rD-nAZuccQf$w0~LHOb@QoI3P*<}dQ$TE@CsO9+7$;Qui@`{&EXAFy>;x(xe3 zHo^qG{jiuT_Y7D5pcB`ZV_HSb-1A}qvIH17*8}rZTuq%AX0ZK+pseYR+-|F0 z9B4Hsm-!*v5b4B*;uT=AAC#=I_?7U{cMHlBzoMTu~ z(z2t6iBbrgLoQYB?GBb(Vc9LNNF;lz%CkC06J0<@MPI||$NO)r;WoRHCr=B*y++UX zXhTlAjM3jt*+W(Ch+9(`8%_aWf-is9KHn3BPXEZV%G8MNfAX3A7~&%w%t7%6OAty< zgP+1dqL6rqIvs%y%u**S;*{~xGV1=wiEEyMYT>MejFzD%?M~#Q^v6B-1xE|`+S|Es zOm3eAS%=-yBT7Sk>7lBw!4i?s)>XdKAg^b8-P=oEHE$I|k24I5N6ofjQOz+pcH?ee zJiQlkq!?WZzyEJ|5k6IJeR=eAN*9>hz15a%F8=Uy?G_(rbxH-)sAmh&a^m_c0mpSj zRt>x$ZYXX$0{B#*B{186tKt=4ecBz8weZ6LUC zTAl=zU%l{%>8i}4T)aA!(V}w@opvYC>JhmV$P>}Yvn5E6qaQDPq0s_B!s25v2dzJb ztPD~bvo{ipN{xYb6YlP@T@1*Ty{pB+^KjMH>8LNiqJJ*os$;)j)@+c$Cc`1%Iyt3x z6@n*ZBr+&2n+Wl;pC&SFsbAZPn%Ys_j620V1+dd%%Bdd+A4;S0y!VpNb2KPl8FQs{ z?7%);Q}Vq1w`Po!cKU``l&oZPc}wYky*|#dbaU%}dG32;GOB5)lGl+Tx-uv~b)5B! zc{IIV3^<5Qy}?!}$Yg(Zoo4jB;<)G~viybvirvR)Efe7D00*4)u S0O+}1Fd0e3?^WVIgZ>Y|O1|{~ diff --git a/assets/lottery/box/images/chest_still_small.png b/assets/lottery/box/images/chest_still_small.png deleted file mode 100644 index d78e966c9e11aa455d5818849d8767af5a2da890..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17338 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 diff --git a/assets/lottery/box/images/key.png b/assets/lottery/box/images/key.png deleted file mode 100644 index eceb456d26b7a7964172e52422522e20d390b39d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1616 zcmV-W2Cw;vP)A6O8HS(l{>|K(apu|{r%vNolcZ^?won5FiIpd)s*qS@K!{Bjaiy{XwWjT&y9~Q7 zXyj}_R3J@|f>=~amX(lTvH^rZnTUw0O%&g0>ckU!e*HIh?mg$Qn4~S>rVEJES2~L; zebW2f^L^+2Q17H(iGDSCAwDxR&lgZ)uJT8klvF2!?qq6i&s~t$Z#Nz`*gZ*7A78c~ z?G$N(X@YKNQSD6C+jJ^l1W<`CJhN;c>K3KY#_~5{6--mmoh-WJFS*^MB5!nh4-3%J zH>9fGKZ<()C~D;pI>;eU8|=q7aSpc@li4JUeldO8yg8nK7=Qw>bN1QOl1*16>tGc+ zNTG#QXd~A4=tl3@sCKrix_%}7qvqK?2Ly=Te#Gd_No3yvWGop0-UC&G5$L)@($0o- z{fhVF)pL6b_{(WyHc}W3qyi*cK=MPZ$u=_89)S)cSOvZ2qFUKddg%rC<<(0M95DV( zFt66fYT_l}D8y4B29xZ^$U!8CunKLgsTMNXMz-S-Xv;&lGBx_Siu>|M4+L}s`19#` zncS@5D#T3?S0Szj8}uMea_2EjasVsXLJIAV+b?|uP0;HpR6A31Tj>RP{dU9r!9Gc# z>he|o=a_N;jID~!^d_q7hgKmjVuLY+xCGYZAn<0dqB=KFA09zpKZI$IBkf=Wdc2J_ z6=AJLB|V-FhrgbvCU=sB=%3yatpDVG=EJuRJ_F#rwsPgOYAgT=;v#v_!&FEBo-gKmR;A^kDxvn#gk?d^E6mb3~-ON7p$=zu!f8A`SDJ2J~;WG zrs^I4mErmPvK;Hx<;jhD^xOT*(Oa{-MwtK%&rO|j=hv#yy9X|M&)q3YPKBgcFq_oG z2NMypBcY^CNoMXw)6c$qO0xNi_}QXNwy_GW(PQ#EumZzX!Es#TRliF+sHKwr0?&5> zVoK~#B?n|aIi_Qi{AHrZeg3 z=CKMx>?3_7QpA@h>Tc7N?rpDsGmGDzo;RK6T6S|s1wOks+u^uY!3@C zyNsPqkckLs#n6JJFE|qhrG4ncHQP@@@+@)#hP|npb7+0eY^1S!siM5pZCJY*`LC{w zw#2I2)jg-HyB=iM=dUxUYlqQR7JUHhlo`d>O18_u zsRAJ>F3Jz+d5^A@&2|bzNb=DlaDPkrUVO#+$5_#7W~zEC9q7ob-5(MB7ihT8-#p=c z|MFM#R;#LeK}}yjf@)4OT+1N>Bp{Mh&2~C8hBO#!w{9oHiD~C1zQoZs1N)iV z6F`8OGx3$|iB^RyV1S%LCbvpJjf9XGum}cCD~LB@tl4$${LbGyKmZx%5?MktIA7|7 zVwjT&D%`qTkWh5<2DL40hBo=H4a$282!KNs3uI`@GDd|dD*ATjqW9X$6@b z+ou`cvUbnG2Q71%Wju;R)X7tlqx1kwo4jdA*L1)P4O_SE@ZkXdnNy5W#RqN@;!`C9 zq$ul#JExl&OiH6t8`Xyb2w-YlV1_a|U=`RI9o0B+(hH&1Cfe O0000 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 diff --git a/assets/lottery/wheel/images/button.png b/assets/lottery/wheel/images/button.png deleted file mode 100644 index 6b0253787e1fb72b3a30362c182e60a09f00d9a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7652 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 SLGPLX0000zUd6&@CZ! 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 X=Xis^_V<~#00000NkvXXu0mjfAx-}` diff --git a/assets/lottery/wheel/images/button_rotating.png b/assets/lottery/wheel/images/button_rotating.png deleted file mode 100644 index 1bc81c8bb32280badc42f1880e16a310186a84e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5580 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 diff --git a/assets/lottery/wheel/wheel.css b/assets/lottery/wheel/wheel.css deleted file mode 100644 index de241bdb..00000000 --- a/assets/lottery/wheel/wheel.css +++ /dev/null @@ -1,57 +0,0 @@ -.prize{ - position: absolute; - z-index: 1000; - top: 200px; - left: 50%; -} - -.wheel{ - position:relative; -} - -.wheel .wheel-ring{ - position: absolute; - width: 275px; - height: 275px; - background: url("images/wheel_ring.png"); -} - -.wheel .wheel-pointer{ - position: absolute; - width: 23px; - height: 45px; - background: url("images/pointer.png"); - - left:126px; - top: 65px; -} - -.wheel .wheel-body{ - position: absolute; - width: 232px; - height: 232px; - background: url("images/wheel.png"); - -webkit-transform-origin: center center; - -webkit-transform:rotateZ(0deg); - - left:22px; - top:21px; -} - -.wheel .wheel-button{ - position: absolute; - width: 65px; - height: 65px; - background: url("images/button.png"); - - left:105px; - top:105px; -} - -.wheel .wheel-button:active{ - background: url("images/button_active.png"); -} - -.wheel .wheel-button.disabled{ - background: url("images/button_rotating.png"); -} diff --git a/assets/widget/button/button.css b/assets/widget/button/button.css index 2f5cca28..a9b962cb 100644 --- a/assets/widget/button/button.css +++ b/assets/widget/button/button.css @@ -1,19 +1,16 @@ -.ui-helper-hidden { - position: absolute !important; - clip: rect(1px 1px 1px 1px); - left: -10000px; -} -.ui-button{ +.ui-btn{ cursor:pointer; -webkit-user-select: none; -webkit-box-sizing:border-box; - box-sizing:border-box; -webkit-appearance:none; } -.ui-button.ui-state-disable { +.ui-btn.ui-state-disable, +.ui-btn.ui-state-disabled { cursor: default; + pointer-events: none;/*此属性能屏蔽click事件*/ } -.ui-button-icon-only .ui-button-text { - position: absolute !important; - clip: rect(1px 1px 1px 1px); +.ui-btn-icon-only .ui-btn-text, +.ui-btn-icon-notext .ui-btn-text, +.ui-hidden { + display: none; } \ No newline at end of file diff --git a/assets/widget/button/button.default.css b/assets/widget/button/button.default.css index 950a3117..a8f8982d 100644 --- a/assets/widget/button/button.default.css +++ b/assets/widget/button/button.default.css @@ -1,4 +1,4 @@ -.ui-button{ +.ui-btn{ display: inline-block; padding: 0.5em 0.6em; margin: 2px; @@ -9,81 +9,92 @@ color: #333; text-decoration: none; font-size: 14px; + position: relative; +} + +.ui-btn-group { + margin: 2px; + position: relative; + display: inline-block; + font-size: 0; + white-space: nowrap; + vertical-align: middle; +} +.ui-btn-group .ui-btn { + margin: 0; + position: relative; + border-radius: 0; + margin-left: -1px; +} + +.ui-btn-group>.ui-btn:first-child { + border-bottom-left-radius: 4px; + border-top-left-radius: 4px; +} +.ui-btn-group>.ui-btn:last-child { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } @media all and (min-device-width:768px) and (max-device-width: 1024px){ - .ui-button{ + .ui-btn{ font-size: 16px; } } -.ui-button.white { - background-color: rgba(0, 0, 0, 0.4); - border-color: black; -} -.ui-button.ui-state-disable { +.ui-btn.ui-state-disable, +.ui-btn.ui-state-disabled { color:#ababab; background-color:#e6e6e6 ; border-color: #d2d2d2; } -.ui-button.ui-state-active { +.ui-btn.ui-state-active { color:#fff; background-color: #2d7ded; border-color:#135cbe; } -.ui-button.ui-state-active.white { - color:#fff; - background-color: rgba(0, 0, 0, 0.8); - border-color:black; -} -.ui-button.ui-state-hover{ +.ui-btn.ui-state-hover{ background-color: #d9d9d9; border-color: #B3B3B3; } -.ui-button.ui-state-hover.white{ - background-color: rgba(0, 0, 0, 0.6); - border-color:black; -} -.ui-button-text-icon { - position: relative; -} -.ui-button.white .ui-icon { - background-image: url(../../icons-36-white.png); -} -.ui-button-text-icon .ui-icon { +.ui-btn-icon-left .ui-icon, +.ui-btn-icon-right .ui-icon, +.ui-btn-icon-bottom .ui-icon, +.ui-btn-icon-top .ui-icon{ position: absolute; } -.ui-button-icon-pos-left { +.ui-btn-icon-left { padding-left: 30px; } -.ui-button-icon-pos-left .ui-icon { +.ui-btn-icon-left .ui-icon { left: 5px; top: 50%; margin-top: -9px; } -.ui-button-icon-pos-right { +.ui-btn-icon-right { padding-right: 30px; } -.ui-button-icon-pos-right .ui-icon { +.ui-btn-icon-right .ui-icon { right: 5px; top: 50%; margin-top: -9px; } -.ui-button-icon-pos-top { +.ui-btn-icon-top { padding-top: 30px; } -.ui-button-icon-pos-top .ui-icon { +.ui-btn-icon-top .ui-icon { top: 5px; left: 50%; margin-left: -9px; } -.ui-button-icon-pos-bottom { +.ui-btn-icon-bottom { padding-bottom: 30px; } -.ui-button-icon-pos-bottom .ui-icon { +.ui-btn-icon-bottom .ui-icon { bottom: 5px; left: 50%; margin-left: -9px; } -.ui-button-icon-only { +.ui-btn-icon-only, +.ui-btn-icon-notext { padding: 0.38em 0.5em; } \ No newline at end of file diff --git a/assets/widget/calendar/calendar.css b/assets/widget/calendar/calendar.css index 7608e689..874f2de2 100644 --- a/assets/widget/calendar/calendar.css +++ b/assets/widget/calendar/calendar.css @@ -10,11 +10,10 @@ width: 100%; left: 0; } - -.ui-slidup-wrap { +.ui-slideup-wrap { position: absolute; left: 0; - z-index: 150; + z-index: 1200; width: 100%; background: rgba(255, 255, 255, 0.4); overflow: hidden; diff --git a/assets/widget/dropmenu/dropmenu.css b/assets/widget/dropmenu/dropmenu.css index c9307890..c2a793fb 100644 --- a/assets/widget/dropmenu/dropmenu.css +++ b/assets/widget/dropmenu/dropmenu.css @@ -1,20 +1,16 @@ .ui-dropmenu { position: absolute; - top: -9999px; - left: 0; - background-color: #fff; - z-index: 200; + display: none; -webkit-user-select: none; -webkit-box-sizing: border-box; + z-index: 10; } -.ui-dropmenu .ui-dropmenu-items, .ui-dropmenu .ui-dropmenu-items li { + +.ui-dropmenu.ui-in { + display: block; +} + +.ui-dropmenu-items, .ui-dropmenu-items>li { list-style: none; - padding: 0; - margin: 0; white-space:nowrap;/*内容不换行*/ -} -.ui-dropmenu .iscroll-wrap { - width:100%; - height: 100%; - overflow: hidden; } \ No newline at end of file diff --git a/assets/widget/dropmenu/dropmenu.default.css b/assets/widget/dropmenu/dropmenu.default.css index 90dfca65..a18a8b7b 100644 --- a/assets/widget/dropmenu/dropmenu.default.css +++ b/assets/widget/dropmenu/dropmenu.default.css @@ -1,147 +1,189 @@ .ui-dropmenu { - border: 1px solid #d9d9d9; - border-radius: 2px; - -webkit-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); - min-width: 75px; - min-height: 35px; background-color: #fff; + padding: 5px 0; + border-radius: 6px; + border: 1px solid rgba(0,0,0,0.2); + -webkit-box-shadow: 0 5px 10px rgba(0,0,0,0.2); + min-width: 160px; } -.ui-dropmenu .ui-dropmenu-items li { - border-bottom: 1px solid #d9d9d9; -} -.ui-dropmenu .ui-dropmenu-items li:last-child { - border-bottom: 0 none; + +.ui-dropmenu-items>li { + line-height: 20px; + display: list-item; } -.ui-dropmenu .ui-dropmenu-items a { +.ui-dropmenu-items>li>a { display: block; - padding: 0.5em 1em; - text-align: left; - position: relative; - color: #5b5b5b; + padding: 3px 20px; + clear: both; + font-weight: normal; + line-height: 20px; + color: #333; + white-space: nowrap; text-decoration: none; - cursor: pointer; - font-size: 14px; } -.ui-dropmenu .ui-dropmenu-items .ui-icontext a { - padding-left: 2em; +.ui-dropmenu-items>li.ui-state-hover>a, .ui-dropmenu-items>li.ui-state-active>a { + color: #fff; + text-decoration: none; + background-color: #0081c2; + background-image: -webkit-linear-gradient(top,#08c,#0077b3); + background-repeat: repeat-x; } -.ui-dropmenu .ui-dropmenu-items .ui-icontext .ui-icon { - position: absolute; - top: 50%; - margin-top: -9px; - left: 5px; -} -.ui-dropmenu .ui-dropmenu-items a.ui-state-hover { - background-color: #e2e2e2; +.ui-dropmenu-items .divider { + height: 1px; + margin: 9px 1px; + overflow: hidden; + background-color: #e5e5e5; + border-bottom: 1px solid #fff; } -/*用来输出剪头*/ -.ui-dropmenu .ui-dropmenu-arrow, .ui-dropmenu .ui-dropmenu-arrow:after { - display:block; - border-width:0 7px 8px 7px; - border-color:transparent transparent #d9d9d9 transparent; - border-style:solid; - position:absolute; - width:0; - height:0; - left: 50%; - top: -8px; - margin-left: -7px; -} -.ui-dropmenu .ui-dropmenu-arrow:after { - content: '\0020'; - border-width:0 5px 6px 5px; - border-color:transparent transparent #fff transparent; +.ui-dropmenu-items>li .ui-icon { position: relative; + vertical-align: top; left: -5px; - top: 2px; - margin-left: 0; + top: 1px; } -/**垂直的dropmenu*/ -.ui-dropmenu.ui-horizontal { - min-width: 0; - min-height: 0; +.ui-dropmenu-items>li.ui-state-active .ui-icon, .ui-dropmenu-items>li.ui-state-hover .ui-icon { + background-image: url("../../icons-36-white.png"); } -.ui-dropmenu.ui-horizontal .ui-dropmenu-items { - padding: 2px 3px 1px; - line-height: 0; - display: inline-block; -} -/*清除浮动*/ -.ui-dropmenu.ui-horizontal .ui-dropmenu-items:after { - content: '\0020'; + +/* --------------------------------------- + * 剪头位置 + * ---------------------------------------*/ + +.ui-dropmenu .ui-arrow, .ui-dropmenu .ui-arrow:after { + position: absolute; display: block; + width: 0; height: 0; - clear: both; + border: 11px solid transparent; } -.ui-dropmenu.ui-horizontal .ui-dropmenu-items li{ - border: 0 none; - position: relative; - padding: 3px 4px 3px; - display: inline-block; +.ui-dropmenu .ui-arrow:after { + border-width: 10px; + content: ''; } -.ui-dropmenu.ui-horizontal .ui-dropmenu-items .ui-icon { - position: absolute; - top: 50%; - left: 50%; - margin: -9px 0 0 -9px; + +/* 剪头的默认位置 */ +.ui-dropmenu.ui-pos-default { + margin-top: 10px; +} +.ui-dropmenu.ui-pos-default .ui-arrow { + left: 30px; + margin-left: -11px; + top: -11px; + border-top-width: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); +} +.ui-dropmenu.ui-pos-default .ui-arrow:after { + border-top-width: 0; + border-bottom-color: white; + margin-left: -10px; + top: 1px; } -.ui-dropmenu.ui-horizontal .ui-dropmenu-items li a { - border-radius: 3px; - width: 1.7em; - height: 1.7em; - padding: 0; - display: block; + +.ui-dropmenu.ui-pos-bottom-left .ui-arrow, +.ui-dropmenu.ui-pos-bottom-center .ui-arrow, +.ui-dropmenu.ui-pos-bottom-right .ui-arrow { + top: -11px; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); } -.ui-dropmenu.ui-horizontal .ui-dropmenu-items li:after { - content: '\0020'; - width:1px; - height: 20px; - background-color: #d9d9d9; - position: absolute; - right: 0; - top: 50%; - margin-top: -10px; + +.ui-dropmenu.ui-pos-bottom-left .ui-arrow:after, +.ui-dropmenu.ui-pos-bottom-center .ui-arrow:after, +.ui-dropmenu.ui-pos-bottom-right .ui-arrow:after { + border-top-width: 0; + border-bottom-color: white; + margin-left: -10px; + top: 1px; } -/*分割线*/ -.ui-dropmenu.ui-horizontal .ui-dropmenu-items li:last-child { - padding: 3px; + +.ui-dropmenu.ui-pos-bottom-left .ui-arrow { + left: 20%; } -.ui-dropmenu.ui-horizontal .ui-dropmenu-items li:last-child:after { - display: none; +.ui-dropmenu.ui-pos-bottom-center .ui-arrow { + left: 50%; +} +.ui-dropmenu.ui-pos-bottom-right .ui-arrow { + left: 80%; } -.ui-dropmenu-pos-up { - -webkit-box-shadow:0 -2px 4px rgba(0, 0, 0, 0.15); +.ui-dropmenu.ui-pos-top-left .ui-arrow, +.ui-dropmenu.ui-pos-top-center .ui-arrow, +.ui-dropmenu.ui-pos-top-right .ui-arrow { + bottom: -11px; + margin-left: -11px; + border-bottom-width: 0; + border-top-color: rgba(0, 0, 0, 0.2); } -.ui-dropmenu-pos-up .ui-dropmenu-arrow, .ui-dropmenu-pos-up .ui-dropmenu-arrow:after { - border-width:8px 7px 0 7px; - border-color:#d9d9d9 transparent transparent transparent; - top:auto; - bottom: -8px; +.ui-dropmenu.ui-pos-top-left .ui-arrow:after, +.ui-dropmenu.ui-pos-top-center .ui-arrow:after, +.ui-dropmenu.ui-pos-top-right .ui-arrow:after { + border-bottom-width: 0; + border-top-color: white; + margin-left: -10px; + bottom: 1px; } -.ui-dropmenu-pos-up .ui-dropmenu-arrow:after { - border-width:6px 5px 0 5px; - border-color:#fff transparent transparent transparent; - top:-8px; + +.ui-dropmenu.ui-pos-top-left .ui-arrow { + left: 20%; +} +.ui-dropmenu.ui-pos-top-center .ui-arrow { + left: 50%; } -.ui-dropmenu.has-iScroll .ui-dropmenu-arrow { - -webkit-transform: translateZ(0px);/**解决箭头不消失问题*/ +.ui-dropmenu.ui-pos-top-right .ui-arrow { + left: 80%; } -@media all and (min-device-width: 768px) and (max-device-width:1024px){ - .ui-dropmenu .ui-dropmenu-items a{ - font-size: 16px; - } - .ui-dropmenu.ui-horizontal .ui-dropmenu-items li{ - padding: 6px 4px 6px; - } - .ui-dropmenu.ui-horizontal .ui-dropmenu-items li:last-child { - padding: 6px 4px; - } -} \ No newline at end of file +/* --------------------------------------- + * 垂直排列 + * ---------------------------------------*/ + + .ui-dropmenu.ui-horizontal { + min-width: 50px; + } + .ui-dropmenu.ui-horizontal .ui-dropmenu-items { + padding: 0 10px; + } + .ui-dropmenu.ui-horizontal .ui-dropmenu-items>li { + display: inline-block; + } + .ui-dropmenu.ui-horizontal .ui-dropmenu-items>li.divider { + width: 2px; + margin: 0 5px; + height: auto; + padding: 0; + position: relative; + overflow: visible; + } + .ui-dropmenu.ui-horizontal .ui-dropmenu-items>li.divider:after { + content: ''; + display: block; + position: absolute; + width: 1px; + height: 30px; + top: -15px; + background-color: #e5e5e5; + border-right: 1px solid #fff; + } + + .ui-dropmenu.ui-horizontal .ui-dropmenu-items>li>a { + width: 30px; + height: 30px; + padding:0; + text-indent: -9999px; + overflow: hidden; + position: relative; + } + .ui-dropmenu.ui-horizontal .ui-dropmenu-items>li .ui-icon { + position: absolute; + left: 50%; + top: 50%; + margin-top: -9px; + margin-left: -9px; + } diff --git a/assets/widget/historylist/historylist.css b/assets/widget/historylist/historylist.css new file mode 100644 index 00000000..8e3ca775 --- /dev/null +++ b/assets/widget/historylist/historylist.css @@ -0,0 +1,16 @@ +.ui-historylist { + overflow: hidden; +} +.ui-historylist-itemwrap { + line-height: 2.5em; + overflow: hidden; + white-space: nowrap; +} +.ui-historylist-item { + height: 100%; + display: block; +} +.ui-historylist-clear { + line-height: 2.5em; + text-align: center; +} \ No newline at end of file diff --git a/assets/widget/historylist/historylist.default.css b/assets/widget/historylist/historylist.default.css new file mode 100644 index 00000000..2df7c19e --- /dev/null +++ b/assets/widget/historylist/historylist.default.css @@ -0,0 +1,27 @@ +.ui-historylist { + padding-top: 1px; +} +.ui-historylist-itemwrap { + border: 1px solid #E1E1E1; + border-width: 1px 1px 0 1px; + background-color: #FFF; + margin-top: -1px; +} +.ui-historylist-item { + padding-left: 50px; + border-bottom: 1px solid #E1E1E1; + background: url('./icon.png') no-repeat 15px 11px; + background-size: 18px 18px; +} +.ui-historylist-clear { + border: 1px solid #E1E1E1; + background-color: #FFF; + margin-top: -1px; +} +.ui-historylist-itemwrap { + -webkit-transition-duration: 300ms; + -webkit-transition-property: -webkit-transform; +} +.ui-historylist-itemmoving { + -webkit-transition-duration: 0; +} \ No newline at end of file diff --git a/assets/widget/historylist/historylist_item_icon.png b/assets/widget/historylist/historylist_item_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..44edcad2039cfcff00728439c9f972a174caa3e1 GIT binary patch literal 396 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnF3?v&v(vJfv=3*z$5DpHG+YkL80J;1DJ|V9E z|NqzSI1fiBvUA0NQmiFGe!&caO2#fz?z+?f1vm>lB8wRqxITa|qthCb89+gq64!{5 z;QX|b^2DN42FH~Aq*MjB%%art{G#k)1?ONBwoR880M*_0ba4#PnCKhW&D&zYvGf%~ zl~u!Zi-tH!2i@Q2OFk^PdQ75n4}Xx7wY->Sd{(;HoWp8aD8<8k7ja3w`szv0KW<9lB8wRqxITa|qthCb89+gq64!{5 z;QX|b^2DN42FH~Aq*MjB%%art{G#k)1?ONBwoR880M*_0ba4#PnCKhW&D&zYvGf%~ zl~u!Zi-tH!2i@Q2OFk^PdQ75n4}Xx7wY->Sd{(;HoWp8aD8<8k7ja3w`szv0KW<9lB8wRqxP?HN@zUM8KR`j564!{5 z;QX|b^2DN42FH~Aq*MjB%%art{G#k)1?ONBwoR880M$+Pba4#Pn7DT0X~Dw^JT9qs z8jkxh&NO6Ik>m16_`Uul*RLC$eEVF)6Dp%P9gi4_=LpMgY+8Kx@16zj#%V8X()Wh$ zSXeiWMI&fR><5LNfh7Wy+-B6~C0$%|OG9nvtO+f;VZFY)wBznA%vs<1KyX!yozwD% zx(~N5ugqBIe#o_y0v*WU>FVdQ I&MBb@0Q<*x_y7O^ literal 0 HcmV?d00001 diff --git a/assets/widget/navigator/nav.png b/assets/widget/navigator/nav.png deleted file mode 100644 index 8d3c5e8da2297e7052bfa43dfdb5a35c06f33544..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 602 zcmV-g0;TSey)mAjO8NdE&x`JzZeQgy$2mShihtap{!{O&4g%1D7>SsuQ#EOWGwq`867w$a3t zkpp8BrmkyZoHROdz5&T-duE(Dm`H75@t&;bz(xyTR#`<^E^=Jtp~!Ky{9aA2EueC%w)oetijv%^6!&`0S)9cU(Z&^{Qsd!s zI02$*p-kma3+3^-$E0rdgrU^i4Lt3mx-&6y7QKA#O$^m%IxC0S(9i;q%*1#1`V6H` zxs-bx#_YDIu?-J3#nb6Uh~e!+Ax5c59?PL`$dNLgIgH-a+nuu|&fJ|CUZ2hEIi2)j zbcSKeSBX*MGY8?Kr)6dbs`OH_S7H&Nr0cY?h0k7uVGAW0K^SNG9LkW=^e019TTtNd(!`~Uy|07*qoM6N<$g5eGtVgLXD diff --git a/assets/widget/navigator/navigator.css b/assets/widget/navigator/navigator.css index 79864a21..a632811e 100644 --- a/assets/widget/navigator/navigator.css +++ b/assets/widget/navigator/navigator.css @@ -1,21 +1,8 @@ -/** 一级导航样式 */ -.ui-navigator { - display: -webkit-box; - -webkit-tap-highlight-color: rgba(0,0,0,0); +.ui-navigator-list, +.ui-navigator-list li { + list-style: none; } - -.ui-navigator .ui-navigator-list, .ui-navigator .ui-navigator-fix { - display: -webkit-box; - -webkit-box-flex: 1; -} - -.ui-navigator .ui-navigator-list li{ - -webkit-box-flex: 1; -} - -.ui-navigator .ui-navigator-list li a, .ui-navigator .ui-navigator-fix{ - display: -webkit-box; - -webkit-box-sizing: border-box; - -webkit-box-align: center; - -webkit-box-pack: center; +.ui-navigator-list li { + display: inline-block; + white-space:nowrap;/*内容不换行*/ } \ No newline at end of file diff --git a/assets/widget/navigator/navigator.default.css b/assets/widget/navigator/navigator.default.css index 45ba0a2d..6af1f647 100644 --- a/assets/widget/navigator/navigator.default.css +++ b/assets/widget/navigator/navigator.default.css @@ -1,27 +1,56 @@ /** 一级导航样式 */ .ui-navigator { - width: 100%; border-top: 1px solid #2468c9; border-bottom: 1px solid #0145a5; background:#2773dc; } -.ui-navigator .ui-navigator-list li a, .ui-navigator .ui-navigator-fix{ - padding: 0.6em 15px; +.ui-navigator-list { + width: 100%; + display: -webkit-box; +} +.ui-navigator-list li { + line-height: 34px; font-size: 16px; - color: #ffffff; - text-decoration: none; - outline: none; - font-family: "微软雅黑" "黑体" ; font-weight: bold; text-align: center; + -webkit-box-flex: 1; + display: -webkit-box; + -webkit-box-align: center; + -webkit-box-pack: center; +} +.ui-navigator-list li a { + text-decoration: none; + color: #ffffff; + display: block; + width: 100%; + -webkit-box-sizing:border-box; + padding: 0 15px; } -/*css for pad*/ -@media all and (min-device-width: 768px) and (max-device-width: 1024px){ - .ui-navigator .ui-navigator-list li a, .ui-navigator .ui-navigator-fix{ - font-size: 18px; - } +.ui-navigator-list li.ui-state-hover, +.ui-navigator-list li.ui-state-active { + background: #0c4da8; } -.ui-navigator .ui-navigator-list li a.cur, .ui-navigator .ui-navigator-fix.cur{ - background:#0c4da8; +.ui-scroller { + padding: 0; + margin: 0; + display: inline-block;/*重要,靠他让宽度由子节点撑开*/ +} +.ui-scroller .ui-navigator-list { + display: block; + white-space:nowrap;/*内容不换行*/ + display: inline-block; + width: auto; +} +.ui-scroller .ui-navigator-list:after { + content: ''; + clear: both; + display: inline-block; + width: 0; + height: 0; + overflow: hidden; +} +.ui-scroller .ui-navigator-list li { + display: inline-block; + float: left; } \ No newline at end of file diff --git a/assets/widget/navigator/navigator.iscroll.css b/assets/widget/navigator/navigator.iscroll.css deleted file mode 100644 index 4056725f..00000000 --- a/assets/widget/navigator/navigator.iscroll.css +++ /dev/null @@ -1,12 +0,0 @@ -.ui-navigator .ui-navigator-wrapper{ - -webkit-box-flex: 1; -} - -.ui-navigator .ui-navigator-list, .ui-navigator .ui-navigator-fix { - display: -webkit-box; - -webkit-box-flex: 0; /*去掉-webkit-box-flex属性,可滑动tab不平分*/ -} - -.ui-navigator .ui-navigator-list li{ - -webkit-box-flex: 0; -} \ No newline at end of file diff --git a/assets/widget/navigator/navigator.iscroll.default.css b/assets/widget/navigator/navigator.iscroll.default.css deleted file mode 100644 index 854375f0..00000000 --- a/assets/widget/navigator/navigator.iscroll.default.css +++ /dev/null @@ -1,11 +0,0 @@ -.ui-navigator .ui-navigator-shadowr, .ui-navigator .ui-navigator-shadowl { - /*gmu-image-self*/background: url('nav.png') right -44px no-repeat; -} - -.ui-navigator .ui-navigator-shadowl{ - /*gmu-image-self*/background-position: 0 0; -} - -.ui-navigator .ui-navigator-shadowall { - /*gmu-image-self*/background: url('nav.png') 0 0 no-repeat, url('nav.png') right -44px no-repeat; -} \ No newline at end of file diff --git a/assets/widget/popover/popover.css b/assets/widget/popover/popover.css new file mode 100644 index 00000000..4896ce8b --- /dev/null +++ b/assets/widget/popover/popover.css @@ -0,0 +1,11 @@ +.ui-popover { + position: absolute; + display: none; + -webkit-user-select: none; + -webkit-box-sizing: border-box; + z-index: 10; +} + +.ui-popover.ui-in { + display: block; +} \ No newline at end of file diff --git a/assets/widget/popover/popover.default.css b/assets/widget/popover/popover.default.css new file mode 100644 index 00000000..67c25219 --- /dev/null +++ b/assets/widget/popover/popover.default.css @@ -0,0 +1,96 @@ +.ui-popover { + background-color: #fff; + padding: 20px; + border-radius: 6px; + border: 1px solid rgba(0,0,0,0.2); +} + +.ui-popover .ui-arrow, .ui-popover .ui-arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border: 11px solid transparent; +} +.ui-popover .ui-arrow:after { + border-width: 10px; + content: ''; +} + +/* 剪头的默认位置 */ +.ui-popover.ui-pos-default { + margin-top: 10px; +} +.ui-popover.ui-pos-default .ui-arrow { + left: 30px; + margin-left: -11px; + top: -11px; + border-top-width: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); +} +.ui-popover.ui-pos-default .ui-arrow:after { + border-top-width: 0; + border-bottom-color: white; + margin-left: -10px; + top: 1px; +} + +/* 剪头 下方 */ +.ui-popover.ui-pos-bottom .ui-arrow { + left: 50%; + margin-left: -11px; + top: -11px; + border-top-width: 0; + border-bottom-color: rgba(0, 0, 0, 0.2); +} +.ui-popover.ui-pos-bottom .ui-arrow:after { + border-top-width: 0; + border-bottom-color: white; + margin-left: -10px; + top: 1px; +} + +/* 剪头 上方 */ +.ui-popover.ui-pos-top .ui-arrow { + left: 50%; + margin-left: -11px; + bottom: -11px; + border-bottom-width: 0; + border-top-color: rgba(0, 0, 0, 0.2); +} +.ui-popover.ui-pos-top .ui-arrow:after { + border-bottom-width: 0; + border-top-color: white; + margin-left: -10px; + bottom: 1px; +} + +/* 剪头 左侧 */ +.ui-popover.ui-pos-left .ui-arrow { + top: 50%; + margin-top: -11px; + right: -11px; + border-right-width: 0; + border-left-color: rgba(0, 0, 0, 0.2); +} +.ui-popover.ui-pos-left .ui-arrow:after { + border-right-width: 0; + border-left-color: white; + bottom: -10px; + right: 1px; +} + +/* 剪头 右侧 */ +.ui-popover.ui-pos-right .ui-arrow { + top: 50%; + margin-top: -11px; + left: -11px; + border-left-width: 0; + border-right-color: rgba(0, 0, 0, 0.2); +} +.ui-popover.ui-pos-right .ui-arrow:after { + border-left-width: 0; + border-right-color: white; + bottom: -10px; + left: 1px; +} \ No newline at end of file diff --git a/assets/widget/quickdelete/quickdelete.css b/assets/widget/quickdelete/quickdelete.css index 3ef55522..30a77788 100644 --- a/assets/widget/quickdelete/quickdelete.css +++ b/assets/widget/quickdelete/quickdelete.css @@ -1,18 +1,8 @@ -.ui-input-mask{ +.ui-quickdelete{ position: relative; + display: inline-block; } -.ui-input-mask input{ +.ui-quickdelete>*:not(span.ui-quickdelete-btn){ outline: none; -} - -.ui-quickdelete-button{ - /*gmu-image-self*/ - background: url(delete.png) no-repeat; - -webkit-background-size: 100%; - -webkit-background-origin: content-box; - visibility: hidden; - position: absolute; - cursor: pointer; -} - +} \ No newline at end of file diff --git a/assets/widget/quickdelete/quickdelete.default.css b/assets/widget/quickdelete/quickdelete.default.css new file mode 100644 index 00000000..881fc540 --- /dev/null +++ b/assets/widget/quickdelete/quickdelete.default.css @@ -0,0 +1,13 @@ +.ui-quickdelete-btn { + /*gmu-image-self*/ + background: url(delete.png) no-repeat; + -webkit-background-size: 100%; + -webkit-background-origin: content-box; + position: absolute; + cursor: pointer; + width: 21px; + height: 21px; + right: 5px; + top: 50%; + margin-top: -11px; +} \ No newline at end of file diff --git a/assets/widget/slider/slider.css b/assets/widget/slider/slider.css index 62ba07aa..76d64d93 100644 --- a/assets/widget/slider/slider.css +++ b/assets/widget/slider/slider.css @@ -1,6 +1,4 @@ - .ui-slider { - height: 148px; width: 100%; overflow: hidden; position: relative; @@ -9,56 +7,18 @@ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); } -.ui-slider-wheel { - height: 100%; - position: relative; - left: 0; - top: 0; - -webkit-transform: translate3d(0, 0, 0); - -webkit-transition-duration: 0ms; - -webkit-animation-timing-function:ease-out; -} -.ui-slider-item > a { - display: block; - text-decoration: none; -} - .ui-slider-group { - height: 100%; - float: left; + overflow: hidden; + position: relative; + white-space:nowrap;/*内容不换行*/ + -webkit-transform: translateZ(0); } .ui-slider-item { - height: 100%; - width:100%; background-color: #e3e3e3; text-align: center; - top:0; - display: inline-block; - overflow: hidden; -} - -.ui-slider-item > p { - position: absolute; - bottom: 0; - width: 100%; - text-align: left; - pointer-events: none; + position: relative; + float:left; overflow: hidden; - word-break: break-all; - white-space: nowrap; - text-overflow: ellipsis; -} - -.ui-slider-dots { - position: absolute; - bottom:6px; - right: 0; - padding: 0 6px; - text-align: right; - - /*无文字时,居中样式*/ - /*width:100%;*/ - /*background: rgba(0, 0, 0, 0.5);*/ - /*text-align: center;*/ + -webkit-box-sizing:border-box; } \ No newline at end of file diff --git a/assets/widget/slider/slider.default.css b/assets/widget/slider/slider.default.css index c5203dbe..28f60bfc 100644 --- a/assets/widget/slider/slider.default.css +++ b/assets/widget/slider/slider.default.css @@ -1,5 +1,4 @@ - -.ui-slider { +.ui-slider-item { height: 148px; } @@ -7,15 +6,37 @@ background:#E7E7E7 url(ui-slider-imgbg.png) center center no-repeat; } +.ui-slider-item > a { + display: block; + text-decoration: none; + /*由于slide-item有3d属性,导致android上最后一个overflow:hidden无效,所以给子集也加个overflow:hidden;*/ + width: 100%; + overflow: hidden; +} + .ui-slider-item > p { + position: absolute; + bottom: 0; + width: 100%; + text-align: left; + pointer-events: none; + overflow: hidden; + word-break: break-all; + white-space: nowrap; + text-overflow: ellipsis; color: #fff; background: rgba(0, 0, 0, 0.5); padding: 6px 0; text-indent: 10px; } - - -.ui-slider-dots b { +.ui-slider-dots { + position: absolute; + bottom: 6px; + right: 0; + padding: 0 6px; + text-align: right; +} +.ui-slider-dots > b { display: inline-block; margin: 0 4px; width: 6px; @@ -24,44 +45,43 @@ background: rgba(144, 144, 144, 0.8); } -.ui-slider-dots .ui-slider-dot-select { +.ui-slider-dots .ui-state-active { background: #fff; } .ui-slider-pre, .ui-slider-next { position: absolute; z-index: 99; + width: 50px; + height: 60px; + top:50%; + left: 0; + margin-top: -30px; + outline: none; +} +.ui-slider-next { + right: 0; + left: auto; +} +.ui-slider-pre:after, .ui-slider-next:after { + position: absolute; width: 20px; height: 40px; - top:50%; - margin-top: -35px; background: rgba(0, 0, 0, 0.3) url(ui-slider-arrow.png) no-repeat; background-size: 35px 15px; outline: none; -} -.ui-slider-pre b, .ui-slider-next b { + content: '\0020'; display: inline-block; - width:50px; - height:60px; - position: relative; - top:-10px; -} - -.ui-slider-pre b { - left:0; -} -.ui-slider-next b { - left:-30px; -} -.ui-slider-pre { background-position: 3px center; left: 0; + top: 50%; + margin-top: -20px; border-radius: 0 20px 20px 0; } - -.ui-slider-next { +.ui-slider-next:after { background-position: -18px center; right: 0; + left: auto; border-radius: 20px 0 0 20px; } @@ -83,32 +103,4 @@ height: .5em; border-radius: .25em; } - .ui-slider-pre, .ui-slider-next { - width: 24px; - height: 48px; - top:50%; - margin-top: -42px; - background-size: 42px 18px; - } - .ui-slider-pre b, .ui-slider-next b { - width:60px; - height:72px; - top:-12px; - } - - .ui-slider-pre b { - left:0; - } - .ui-slider-next b { - left:-36px; - } - .ui-slider-pre { - background-position: 3px center; - border-radius: 0 24px 24px 0; - } - - .ui-slider-next { - background-position: -22px center; - border-radius: 24px 0 0 24px; - } } diff --git a/assets/widget/suggestion/$iscroll.css b/assets/widget/suggestion/$iscroll.css new file mode 100644 index 00000000..84f40d02 --- /dev/null +++ b/assets/widget/suggestion/$iscroll.css @@ -0,0 +1,5 @@ + +.ui-suggestion .ui-suggestion-content{ + min-height: 33px; + max-height: 66px; +} diff --git a/assets/widget/suggestion/$quickdelete.css b/assets/widget/suggestion/$quickdelete.css new file mode 100644 index 00000000..8d8e2ee0 --- /dev/null +++ b/assets/widget/suggestion/$quickdelete.css @@ -0,0 +1,17 @@ + +.ui-input-mask input{ + outline: none; +} + +.ui-suggestion-quickdel{ + background: url(del.png) no-repeat; + -webkit-background-size: 100%; + -webkit-background-origin: content-box; + visibility: hidden; + cursor: pointer; + width: 20px; + height: 20px; + display: -webkit-box; + padding: 10px; +} + diff --git a/assets/widget/suggestion/del.png b/assets/widget/suggestion/del.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0d025d87ab7cd3c83ff5ffd584690b05562f32 GIT binary patch literal 865 zcmV-n1D^beP)WT3oQ*v)gyImGgG}AEv~({%SaH2Dd~W8NSfftvL-EXWL=S7`#dam1l%W`k?vUDyCGeY{&oS6Eg|2M?nPnb zhVjx`x#LHZe0Dsu$oqVNf;muUk0M$Qm2?6FiT+dxlAE7CuXz)Pg43ZG4Y zFYB;u)w$xPH7r_5=WKyxP$Aqe94NBV4$|3LhJB;Sr#<-hs&?KKxCt~yAdL+IZXsY3 zxIm)0X@cu*fmNVWgB4*{x!`h~;>`{Xm(mv47gSu&h2k!S&)C#{Q{Ytq(0^LXo?{An zjpLbgu0pmD?)4=Qs7L^hfirZ>mpb53pu%q-VS65xs0}y@2r4+^MAIgk0?!q};S0L0 z2}u-2GDVrLLUuTX=WnbUf~oGqivX-eV$cEEg2o*HGh>ysb>)VjZFzJa7K^%lz%Z+#FD)VG&tl3$|SvOl~sXk=_aLjqS~t{^NsG}v<6f`$SX6P%O3sU|Y~#(S`!%Y4kHi&Du$LySC0R~5=< zh(U&{l(6W=#7ZSBydQNlkJaVW)2L;@oGScMxJ3F)pc`0p>EeGmoP473;SeH*D7TSE zu&_&9;kr>rZgGWR(#DC+!v~l$&H_PlzCPDk(-l_87{%j-L%uEGlb2D)e=Rl1E`o4` r+}W3MXo;#=zvWH}00000NkvXXu0mjf`J#uR literal 0 HcmV?d00001 diff --git a/assets/widget/suggestion/suggestion.css b/assets/widget/suggestion/suggestion.css index dd539657..064156ee 100644 --- a/assets/widget/suggestion/suggestion.css +++ b/assets/widget/suggestion/suggestion.css @@ -1,35 +1,34 @@ -.ui-input-mask{ +.ui-suggestion-mask{ position: relative; z-index: 100; + display: -webkit-box; } +.ui-suggestion-mask input{ + -webkit-box-flex: 1; + display: block; +} .ui-suggestion{ position: absolute; display: none; z-index: 100; + width: 100%; + -webkit-box-sizing: border-box; } .ui-suggestion ul li{ position: relative; } -.ui-suggestion .ui-suggestion-result{ - display: block; -} - -.ui-suggestion .ui-suggestion-content{ - position: relative; -} - .ui-suggestion-button span{ display: inline-block; } -.ui-suggestion-button span:first-child{ +.ui-suggestion-button span.ui-suggestion-clear{ float: left; } -.ui-suggestion-button span:last-child{ +.ui-suggestion-button span.ui-suggestion-close{ float: right; } diff --git a/assets/widget/suggestion/suggestion.default.css b/assets/widget/suggestion/suggestion.default.css index b53c1bdc..53ba18c5 100644 --- a/assets/widget/suggestion/suggestion.default.css +++ b/assets/widget/suggestion/suggestion.default.css @@ -13,23 +13,19 @@ .ui-suggestion ul li{ border-bottom: 1px solid #e7e7e7; - padding: 0.6em 0px; + padding: 0.5em 10px; } -.ui-suggestion .ui-suggestion-result{ - padding: 0 10px; -} -.ui-suggestion .ui-suggestion-result:active, .ui-suggestion-result-highlight{ +.ui-suggestion-highlight{ background: #ededed; } -.ui-suggestion .ui-suggestion-result span{ +.ui-suggestion ul li span{ color: #878787; } .ui-suggestion .ui-suggestion-button{ - border-top: 1px solid #e7e7e7; background: #f7f7f7; height: 33px; line-height: 33px; @@ -44,11 +40,11 @@ cursor: pointer; } -.ui-suggestion-button span:first-child{ +.ui-suggestion-button span.ui-suggestion-clear{ border-right: 1px solid #e7e7e7; } -.ui-suggestion-button span:last-child{ +.ui-suggestion-button span.ui-suggestion-close{ border-left: 1px solid #e7e7e7; } diff --git a/assets/widget/toolbar/toolbar.css b/assets/widget/toolbar/toolbar.css index 31246009..d7baf207 100644 --- a/assets/widget/toolbar/toolbar.css +++ b/assets/widget/toolbar/toolbar.css @@ -19,17 +19,6 @@ height: 100%; } -.ui-toolbar-backbtn { - display: block; - position: relative; - float: left; - cursor: pointer; - -webkit-box-sizing:border-box; - box-sizing:border-box; - -webkit-user-select: none; - user-select: none; -} - .ui-toolbar-left, .ui-toolbar-right { position: absolute; top:0; diff --git a/assets/widget/toolbar/toolbar.default.css b/assets/widget/toolbar/toolbar.default.css index e9614cd1..09553fb0 100644 --- a/assets/widget/toolbar/toolbar.default.css +++ b/assets/widget/toolbar/toolbar.default.css @@ -14,47 +14,17 @@ text-align: center; line-height: 40px; } - -.ui-toolbar-backbtn { - border: solid #d9d9d9; - border-width: 1px 1px 1px 0; - background: #f7f7f7; - line-height: 29px; - height: 30px; - margin: 5px 0 0 20px; - padding: 0 8px 0 6px; -} - -.ui-toolbar-backbtn:before, .ui-toolbar-backbtn:after { - content: '\0020'; - border-width:15px 8px 15px 0; - border-style:solid; - position: absolute; - left: -8px; - top: -1px; - width:0; - height:0; - display: block; -} - -.ui-toolbar-backbtn:before { - border-color:transparent #d9d9d9 transparent transparent; -} - -.ui-toolbar-backbtn:after { - border-color:transparent #f7f7f7 transparent transparent; - left: -7px; -} - -.ui-toolbar .ui-toolbar-backbtn.ui-state-hover { - background-color: #d9d9d9; - border-color: #b3b3b3; -} -.ui-toolbar .ui-toolbar-backbtn.ui-state-hover:after { - border-color: transparent #d9d9d9 transparent transparent; -} -.ui-toolbar .ui-toolbar-backbtn.ui-state-hover:before { - border-color: transparent #b3b3b3 transparent transparent; +.ui-toolbar-button { + display: inline-block; + padding: 0.5em 0.6em; + margin: 2px; + border: 1px solid #D2D2D2; + -webkit-border-radius: 2px; + border-radius: 2px; + background-color: #FFF; + color: #333; + text-decoration: none; + font-size: 14px; } /*css for pad*/ @@ -66,22 +36,4 @@ font-size: 16px; line-height: 48px; } - .ui-toolbar-backbtn { - line-height: 35px; - height: 36px; - margin: 6px 0 0 22px; - padding: 0 0.6em 0 0.5em; - } - .ui-toolbar-backbtn:before, .ui-toolbar-backbtn:after { - content: '\0020'; - border-width:18px 9px 18px 0; - left: -8px; - top: -1px; - width:0; - height:0; - display: block; - } - .ui-toolbar-backbtn:after { - left: -7px; - } } diff --git a/build.js b/build.js deleted file mode 100644 index 0cdb95f7..00000000 --- a/build.js +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env node -/** - * @fileOverview Gmu打包工具。通过`node build`来查看如何使用此工具, - * 运行前请确保node的依赖都已经安装。通过`npm install`来安装依赖。 - * - * 此程序是所有task的入口,task的细节在build目录下对应的文件实现。 - * - * 如何添加一个task - * =================================== - * 在build目录下添加一个js,并将在`exports.task`标记为true. - * 程序初始化的时候回自动调用`exports.run( cli );` - * 关于commander的是用说明请查看[commander.js](https://github.com/visionmedia/commander.js/). - */ -(function () { - 'use strict'; - - var cli = require('commander'), - glob = require('glob'), - path = require('path'), - q = require('q'); - - cli.option('-s, --silent', '安静模式,不输出任何调试信息'); - - //加载所有task - q.nfcall(glob, 'build/*.js') - .then(function (files) { - - files.map(function (file) { - return path.basename(file, '.js'); - }).forEach(function (task) { - task = require('./build/' + task); - - //初始化其他task - task.task && task.init(cli); - }); - }).then(function () { - cli.parse(process.argv); - - // 如果什么都没有输入就显示帮助 - if (!cli.args.length) { - cli.outputHelp(); - process.exit(0); - } - }).fail(function (reason) { - console.error(reason); - }); - -})(); \ No newline at end of file diff --git a/build/config.json b/build/config.json deleted file mode 100644 index 23064bcc..00000000 --- a/build/config.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "dist": { - "zepto": { - "path": "_src/core/zepto/", - "files": "polyfill zepto detect event ajax form fx", - "dest": "dist/zepto.js", - "banner": "/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */" - }, - "gmu": { - "path": "_src", - "cssPath": "assets", - "all": ["widget/**.js"], - "dest": "dist/gmu.js", - "exclude": ["core/zepto.js", "core/zepto.fx.js"], - "banner": "/* Gmu v@version - @files */" - } - }, - - "fis": { - "dest": "dist/fis/gmu_@version" - }, - - "jshint": { - "src": [ - "build/*.js" - ] - } -} \ No newline at end of file diff --git a/build/dist.js b/build/dist.js deleted file mode 100644 index abe569a6..00000000 --- a/build/dist.js +++ /dev/null @@ -1,450 +0,0 @@ -/** - * @fileOverview 负责打包Zepto和GMU代码,包括合并成一个JS和采用uglify压缩js。 - * - * 调用方式如下`node build dist`. - * - * 定制打包 - * ==================================================================== - * 默认会把所有的组件打包,如果指向打包部分组件可以采用如下命令 - * - * * `node build dist refresh` 这样只会打包refresh组件(包括它的依赖)。 - * * `node build dist refresh.iOS5` 这样只会打包refresh.iOS5组件(包括它的依赖)。 - * - * 另外还可以过滤掉部分组件如. - * - * `node build dist --exclude "widget/refresh*.js"` 此条命令将会打包所有的,除了refresh。 - * - * 主题指定 - * ===================================================================== - * 如果默认不指定,将会打包default主题, 通过一下方式可以指定主题 - * - * `node build dist --theme default` 或者 `node build dist -t default`。 - * - * 如果只需打包骨架样式,通过一下方式来打包 - * `node build dist -t ""` 即将theme指定为空 - */ -(function () { - 'use strict'; - - var - // q 是一个实现了promise/A+规范的js库 - // 主要用来优化异步操作代码 - q = require('q'), - - // 用来根据规则查找文件的工具 - glob = require('glob'), - path = require('path'), - - // 用来判断某字符串是否满足某规则 - minimatch = require('minimatch'), - file = require('./util/file'), - helper = require('./util/helper'), - config = require('./config.json').dist, - run; - - // 合并zepto文件 - function concatZepto() { - var opt = config.zepto, - dest = opt.dest, - files = opt.files; - - files = files.split(/\s+/g) - .map(function (file) { - return opt.path + file + '.js'; - }); - - file.concat(files, dest, opt.banner); - - console.log('生成 %s 成功, 大小为: %s ', dest, file.caculateSize(dest)); - } - - // 用uglify压缩zepto文件 - function minifyZepto() { - var opt = config.zepto, - minDest = opt.dest - .replace(/\.js$/, '.min.js'); - - file.write(minDest, opt.banner + '\n' + file.minify(opt.dest)); - console.log('生成 %s 成功, 大小为: %s ', minDest, file.caculateSize(minDest)); - } - - // 收集需要处理的js文件 - function collectComponents( exclude, files ) { - var opt = config.gmu, - dir = path.resolve( opt.path ), - - // 判断文件名是否满足exclude中设置的规则 - matchExclude = function (item) { - var i = 0, - len = exclude.length; - - for ( ; i < len; i++ ) { - - if (minimatch(item, exclude[i])) { - return true; - } - } - - return false; - }; - - exclude = (opt.exclude || []) - .concat(exclude ? exclude.split(/\s+/) : []) - .map(function( item ){ - - //转义.和$, 正确的匹配应该\.和\$ - return item.replace(/(\.|\$\-)/, '\\$1'); - }); - - files = files || opt.all; - - // 确保files是个数组 - if (!Array.isArray(files)) { - files = [files]; - } - - return q.all(files.map(function (file) { - return q.nfcall(glob, file, { cwd: dir}); - })) - .then(function (files) { - - return files - - // 摊平数组 - .reduce(function (prefix, now) { - return prefix.concat(now); - }) - - // 去重 同时把exclude过滤掉 - .filter(function (item, i, me) { - return me.lastIndexOf(item) === i && - !matchExclude(item); - }); - }); - } - - function buildComponents(files) { - var opt = config.gmu, - prefix = path.resolve(opt.path) + path.sep, - cssPrefix = path.resolve(opt.cssPath) + path.sep, - ret = [], - hash = {}, - parse = function (path) { - var css = {}, - content, - cssPath, - exists, - depends, // dependencies - item, - matches; - - // 如果文件不存在,则直接跳过, 同时从数组中过滤掉 - // 或者已经处理过也跳过 - if (!(exists = file.exists((prefix + path))) || - hash.hasOwnProperty(path)) { - - return exists; - } - - content = file.read(prefix + path); - - // 读取文件内容中对js的依赖 格式为:@import core/zepto.js - matches = content.match(/@import\s(.*?)\n/i); - if (matches) { - depends = matches[1] - - // 多个依赖用道号隔开 - .split(/\s*,\s*/g) - .filter(parse); - } - - // 查找css文件,对应的目录在assets目录下面的widgetName/widget.css - // 或者widgetName/widget.plugin.css - cssPath = path.replace(/\/(.+)\.js$/, function (m0, m1) { - var - //插件的css并不在插件名所在目录,而是对应的组件名所在目录 - name = m1.replace(/\..+$/, ''); - - return '/' + name + '/' + m1 + '.css'; - }); - - // 检查骨架css是否存在 - if (file.exists(cssPrefix + cssPath)) { - css.structor = cssPath; - } - - // 查找themes - glob.sync(cssPath.replace(/\.css$/, '\\.*\\.css'), - {cwd: cssPrefix}) - .forEach(function (item) { - var m = item.match(/\.([^\.]*)\.css$/i); - m && (css[m[1]] = item ); - }); - - // 读取文件内容中对css的依赖 格式为:@importCSS loading.css - matches = content.match(/@importCSS\s(.*?)\n/i); - if (matches) { - css.dependencies = matches[1] - - // 多个依赖用道号隔开 - .split(/\s*,\s*/g) - .map(function (item) { - var ret = {}; - - // 可能只有骨架css存在,也可能只有主题css存在 - file.exists(cssPrefix + item) && - (ret.structor = item); - - glob.sync(item.replace(/\.css$/, '\\.*\\.css'), - {cwd: cssPrefix}) - - .forEach(function (item) { - var m = item.match(/\.([^\.]*)\.css$/i); - m && (ret[m[1]] = item ); - }); - return ret; - }); - } - - item = { - path: path, - dependencies: depends, - css: css - }; - - // 将path作为key保存在hash表中,以避免重复解析 - hash[path] = item; - ret.push(item); - - return true; - }; - - files.filter(parse); - - return ret; - } - - function concatComponents(theme, models) { - - if (typeof theme !== 'string') { - models = theme; - theme = 'default'; - } - - var js = '', - css = '', - // 存贮合并了哪些js文件 - jsFiles = [], - - // 存贮合并了哪些css文件 - cssFiles = [], - pkg = require('../package.json'), - - // 存取css文件中的图片信息 key为url()括号中的值,value为原始图片路径 - images = {}, - opt = config.gmu, - prefix = path.resolve(opt.path) + path.sep, - cssPrefix = path.resolve(opt.cssPath) + path.sep, - - //hash表,key为js的路径,value为对应obj - hash = {}, - rendered = { - - // 不再输出core/zepto.js, 这个文件会单独打包 - 'core/zepto.js': true - }, - jsRender = function (item) { - - // 如果存在js依赖,先输出依赖 - if (item.dependencies) { - item.dependencies.forEach(function (item) { - hash[item.path] && jsRender(hash[item.path]); - }); - } - - // 如果已经输出过,不在重复输出 - if (rendered[item.path]) { - return; - } - - jsFiles.push( item.path ); - - js += '/*!' + item.path + '*/\n' + - file.read(prefix + item.path) + '\n'; - - // 标明已经输出过 - rendered[item.path] = true; - }, - - readCss = function (obj) { - var ret = '', - i = 0, - matches, - len, - url; - - obj.structor && - (ret += '/*!' + obj.structor + '*/\n' + - file.read(cssPrefix + obj.structor) + '\n') && - cssFiles.push(obj.structor); - - theme && obj[theme] && - (ret += '/*!' + obj.theme + '*/\n' + - file.read(cssPrefix + obj[theme]) + '\n') && - cssFiles.push(obj[theme]); - - // 收集images - matches = ret.match(/url\(((['"]?)(?!data)([^'"\n]+?)\2)\)/ig); - - if (matches) { - - for (len = matches.length; i < len; i++) { - - // 苦恼,为何matches结果里面不带分组结果呢? - url = matches[i].match( - /url\(((['"]?)(?!data)([^'"\n]+?)\2)\)/i)[3]; - - images[url] = path.resolve(cssPrefix + - path.dirname(obj.structor || obj[theme]) + - path.sep + url); - } - } - - css += ret; - }, - - cssRender = function (item) { - var css; - - // 先输出js依赖对应的css - if (item.dependencies) { - item.dependencies.forEach(function (item) { - hash[item.path] && cssRender(hash[item.path]); - }); - } - - css = item.css; - - if (css.dependencies) { - css.dependencies.forEach(readCss); - } - - readCss(css); - }, - - replaceFn = function (m0, m1, m2) { - return '-' + (~~m1 + 1) + '.' + m2; - }, - - dest, - minDest, - destDir, - image, - newName, - banner; - - //生成hash表 - models.forEach(function (item) { - hash[item.path] = item; - }); - - - models.forEach(jsRender); - models.forEach(cssRender); - - banner = opt.banner - .replace(/@version/ig, pkg.version); - - dest = opt.dest; - file.write(dest, - banner.replace(/@files/ig, jsFiles.join(', ')) + '\n' + js); - - console.log('生成 %s 成功, 大小为: %s ', dest, file.caculateSize(dest)); - - minDest = dest.replace(/\.js$/, '.min.js'); - file.write(minDest, - banner.replace(/@files/g, jsFiles.join(', ')) + - '\n' + file.minify(dest)); - console.log('生成 %s 成功, 大小为: %s ', minDest, file.caculateSize(minDest)); - - // 复制图片 - destDir = path.dirname(dest) + path.sep; - - //如果images目录已经存在,则删除,否则images目录下会自动生成很多新文件。 - file.rmdir(destDir + 'images'); - - for (image in images) { - - if( images.hasOwnProperty( image ) ) { - newName = path.basename(image); - - // 如果文件名已经占用,则换个名字 - // todo 如果是同一文件则不换名字 - while (file.exists(destDir + 'images/' + newName)) { - newName = newName - .replace(/(?:-(\d+))?\.(png|jpg|jpeg|gif)$/i, - replaceFn); - } - - file.write(destDir + 'images/' + newName, - file.read(images[image])); - - css = helper.strReplace('\\((\'|")?' + - image.replace(/\./g, '\\.') + '\\1\\)', - '(./images/' + newName + ')', css); - } - } - - dest = dest.replace(/\.js$/, '.css'); - file.write(dest, - banner.replace(/@files/g, cssFiles.join(', ')) + '\n' + css); - console.log('生成 %s 成功, 大小为: %s ', dest, file.caculateSize(dest)); - } - - // 提供直接调用 - exports.run = run = function () { - var exclude = this.exclude, - theme = this.theme, - files = [], - len = this.args.length, - i = 0; - - theme = typeof theme === 'undefined' ? 'default' : theme; - - //如果node build dist后面还带其他参数,则只收集指定的文件。 - for( ; i < len-1; i++ ) { - files.push('widget/' + this.args[i].replace(/(\.|\$\-)/, '\\$1') + - '*.js'); - } - - return q - .fcall(concatZepto) - .then(minifyZepto) - .then(helper.curry(collectComponents, exclude, - files.length ? files : null)) - .then(buildComponents) - .then(helper.curry(concatComponents, theme)); - }; - - //标记是一个task - exports.task = true; - - exports.init = function ( cli ) { - cli.option('-X, --exclude ', '在打包GMU的时候,' + - '用来过滤部分文件。'); - - cli.option('-t, --theme ', '在打包GMU的时候,' + - '用来指定打包什么主题。'); - - cli.command('dist') - .description('合并代码并采用uglify压缩代码') - .action(run.bind(cli)); - }; - - //暴露给fis.js用 - exports.getComponents = function( exclude ){ - return collectComponents(exclude) - .then(buildComponents); - }; - -})(); \ No newline at end of file diff --git a/build/doc.js b/build/doc.js deleted file mode 100644 index e32b40b6..00000000 --- a/build/doc.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * @fileOverview 生成doc工具,此程序会在生成一个doc目录。 - * 程序依赖linux/unix系统,需要php已经安装,并暴露php命令。 - */ -(function(){ - "use strict"; - - var shell = require('./util/shell'), - path = require('path'); - - - //提供直接调用 - var run = exports.run = function() { - - //todo 改成node全权负责生成 - return shell('which php') - .then(function(value){ - var phpFile = path.resolve('build/doc/index.php'); - return shell(value + ' '+phpFile); - }).then(function( result ){ - console.log(result); - }); - }; - - //标记是一个task - exports.task = true; - - - exports.init = function(cli) { - cli.command('doc') - .description('生成静态文本') - .action(run.bind(cli)); - }; -})(); \ No newline at end of file diff --git a/build/doc/index.php b/build/doc/index.php deleted file mode 100644 index 5b38f190..00000000 --- a/build/doc/index.php +++ /dev/null @@ -1,167 +0,0 @@ - './css/purple.css', - 'blue' => './css/blue.css', - 'dark' => './css/dark.css', - 'orange' => './css/orange.css' -); - -$zeptoDoc = new JsDoc($zeptoDir); -$zeptoDoc->setData('name', 'Zepto.js'); -$zeptoDoc->setData('title', 'Zepto API'); -$zeptoDoc->setData('desc', 'Zepto是一个轻量级的针对现代浏览器的JS库,兼容jQuery用法'); -$zeptoDoc->setOrder('*zepto.doc.js - *zepto.doc.event.js - *zepto.doc.ajax.js - *zepto.doc.effect.js - *zepto.doc.touch.js - '); - - -$gmuDoc = new JsDoc($gmuDir, array('core/zepto/*', 'core/zepto.fx.js'), true); -$gmuDoc->setData('name', 'GMU 新版API'); -$gmuDoc->setData('title', 'GMU 新版API'); -$gmuDoc->setOrder(' - core/zepto.extend.js - core/zepto.ui.js - core/zepto.highlight.js - core/zepto.fix.js - core/zepto.iscroll.js - core/zepto.imglazyload.js - widget/suggestion.js - widget/quickdelete.js - widget/appframe.js - widget/pageswipe.js - widget/tabs.js - widget/tabs.ajax.js - widget/tabs.swipe.js - widget/navigator.js - widget/navigator.iscroll.js - widget/refresh.js - widget/refresh.lite.js - widget/refresh.iscroll.js - widget/refresh.iOS5.js - widget/dropmenu.js - widget/dropmenu.iscroll.js - widget/calendar.js - widget/calendar.picker.js - widget/slider.js - widget/add2desktop.js - widget/gotop.js - widget/gotop.iscroll.js - widget/pageswipe.js - widget/dialog.js - widget/dialog.position.js - widget/toolbar.js - widget/button.js - widget/button.input.js - widget/more.js - '); - -JsDoc_Template::setTemplateDir($templateDir); -JsDoc_Template::setTheme(''); - -$navTemplate = new JsDoc_Template('nav.phtml'); -$jsDocTemplate = new JsDoc_Template_Doc('doc.phtml', $zeptoDoc); -$jsDocTemplate->addJsDoc($gmuDoc); -$jsDocTemplate->assignVariable('NavPrefix', $navTemplate->render()); - -$template = new JsDoc_Template('index.phtml'); -$template->assignVariable('title', 'GMU API 文档 '); -$template->assignVariable('docContent', $jsDocTemplate->render()); -$template->assignVariable('searchEntries', $jsDocTemplate->getSearchEntries()); - -$template->assignVariable('themes', $themes); -$template->assignVariable('theme', 'blue'); -$template->assignVariable('activeTheme', 'purple'); -$content = $template->render(); - -if(!is_dir($outputDir)){ - @mkdir($outputDir); -} - -// 删除doc目录下所有文件 -//todo 加配置项 -if( true ) { - emptyDir($outputDir); -} - -//生成二维码 -@mkdir($outputDir."/qrcode"); -$content = preg_replace_callback('#\ssrc=(\'|")(.+?)\1#', function($maches){ - global $outputDir; - - if(preg_match('#qrcode\.php\?data=(.*)$#i', $maches[2], $m)){ - $url = urldecode($m[1]); - $filename = "/qrcode/".md5($url).".png"; - QRcode::png($url, $outputDir.$filename, QR_ECLEVEL_L, 4); - return " src=\".".$filename."\""; - } - return $maches[0]; -}, $content); - -//生成文档首页 -file_put_contents($outputDir."/index.html", $content); - -//把非.phtml文件或目录全部移过去 -$items = scandir($templateDir); -foreach($items as $item) { - if ($item == '.' || $item == '..' || preg_match('#\.phtml$#', $item)) continue; - copyDir($templateDir.'/'.$item, $outputDir.'/'.$item); -} - -echo "生成API文档成功"; - -//清空文件夹 -function emptyDir($dir, $includeSelf = false){ - if (!file_exists($dir)) return true; - if (!is_dir($dir) || is_link($dir)) return unlink($dir); - foreach (scandir($dir) as $item) { - if ($item == '.' || $item == '..') continue; - if (!emptyDir($dir . "/" . $item, true)) { - @chmod($dir . "/" . $item, 0777); - if (!emptyDir($dir . "/" . $item, true)) return false; - }; - } - return $includeSelf ? rmdir($dir) : true; -} - -function copyDir($src, $desc){ - if( is_file($src) ){ - return copy($src, $desc); - } else if(is_dir( $src )) { - is_dir($desc) || mkdir($desc); - $files = scandir($src); - foreach($files as $file) { - if ($file == '.' || $file == '..') continue; - if(!copyDir($src.'/'.$file, $desc."/".$file)){ - return false; - } - } - return true; - } -} \ No newline at end of file diff --git a/build/doc/lib/JsDoc/Template/Doc.php b/build/doc/lib/JsDoc/Template/Doc.php deleted file mode 100644 index f2c74d24..00000000 --- a/build/doc/lib/JsDoc/Template/Doc.php +++ /dev/null @@ -1,206 +0,0 @@ -addJsDoc($jsDoc); - } - - public function addJsDoc(JsDoc $jsDoc){ - if($jsDoc){ - $this->_jsDocs[] = $jsDoc; - } - } - - public function getJsDocs(){ - return $this->_jsDocs; - } - - public function addSearchEntry($label, $value, $desc, $href, $category){ - $desc = strip_tags($desc); - $desc = $this->_substr($desc, 0, 35).(strlen($desc)>40?'...':''); - $this->_search_entries[] = array( - 'label' => $label, - 'value' => $value, - 'desc' => $desc, - 'href' => $href, - 'category' => $category, - ); - } - - protected function _substr($str, $start) - { - $null = ""; - preg_match_all("/./u", $str, $ar); - if(func_num_args() >= 3) { - $end = func_get_arg(2); - return join($null, array_slice($ar[0],$start,$end)); - } else { - return join($null, array_slice($ar[0],$start)); - } - } - - public function getSearchEntries(){ - return $this->_search_entries; - } - - public function hook_content($type){ - $event = new JsDoc_Event('output'.$type, isset($this->_variables[$type])?$this->_variables[$type]:''); - $this->trigger($event); - return $event->data; - } - - - public function getFileLink($filename) - { - return isset($this->_fileLinks[$filename]) ? $this->_fileLinks[$filename] : null; - } - - public function gennerateCommentId($comment) - { - $file = $comment->getFile(); - $filePath = $file->getFilePath(); - if(!isset($this->_commentIds[$filePath])){ - $this->_commentIds[$filePath] = array(); - } - if(isset($this->_commentIds[$filePath][$comment->getHash()])) { - return $this->_commentIds[$filePath][$comment->getHash()]; - } - $id = preg_replace('/\s+/', '', strtolower($comment->name)); - if(in_array($id, $this->_commentIds)){ - $fileComment = $file->getFileComment(); - $id = preg_replace('/\s+/', '', strtolower($fileComment->name)).'_'.$id; - } - while(in_array($id, $this->_commentIds)){ - if(preg_match('/_(\d)$/', $id, $matches)) { - $id = preg_replace('/_(\d)$/', intval($matches[1])+1, $id); - }else { - $id = $id.'_1'; - } - } - $this->_commentIds[$filePath][$comment->getHash()] = $id; - $this->_commentIds[] = $id; - return $id; - } - - public function getFileByPath($path){ - $result = null; - foreach($this->_jsDocs as $jsDoc){ - if($result = $jsDoc->getFileByPath($path)){ - break; - } - } - return $result; - } - - public function onConvertLink(JsDoc_Event $e){ - $options = &$e->data; - - if(is_string($options['href']) && preg_match('/^(.+?\.js)(#(.+))?$/', $options['href'], $mathes)) { - $options['attributes']['target'] = '_self'; - $options['type'] = 'inline'; - $file = $this->getFileByPath($mathes[1]); - if($file) { - if($mathes[3]){ - foreach($file->getMethodComments() as $comment){ - if($comment->name == $mathes[3]){ - $options['href'] = '#'.$this->gennerateCommentId($comment); - $e->data = $options; - return false; - } - } - $options['href'] = '#'.$mathes[3]; - $e->data = $options; - return false; - } else if(!$mathes[3] && ($link = $this->_fileLinks[$mathes[1]])) { - $options['href'] = $link['href']; - $e->data = $options; - return false; - } - } - $options['href'] = '#'; - $e->data = $options; - return false; - }else if(!preg_match('/#/', $options['href'])) { - $options['type'] = 'external'; - $options['attributes']['target'] = '_blank'; - $e->data = $options; - return false; - } - } - - public function wrapText($text) - { - static $wiki; - if (!$wiki) { - $wiki = new JsDoc_Docwiki(); - $wiki->setCompatible(); - $wiki->bind('convertlink', array(&$this, 'onConvertLink')); - } - return $wiki->transform($text); - } - - public function wrapCode($text, $type = 'javascript') - { - $text = ''.$text.''; - return $this->wrapText($text); - } - - public function wrapNotice($text) - { - return "

"; - } - - public function wrapGrammar($text) - { - $text = htmlspecialchars(str_replace("=>", '⇒', $text)); - $text = preg_replace('/\b(v[\d\.\+]+)($|\b)/m', '\1', $text); - $text = preg_replace('/(⇒.*)$/m', '\1', $text); - return $text; - } - - public function wrapImport($text) - { - return htmlspecialchars($text); - } - - protected function preg_callback_code($matches) - { - $type = 'javascript'; - if($matches[1] && preg_match('/type=(["\'])(.*)\1/i', $matches[1], $m)){ - $type = $m[2]; - } - return $this->wrapCode(trim($matches[2], "\n"), $type); - } - - protected function _beforeRender() - { - $this->_fileLinks = array( - 'core/zepto.js' => array( - 'link' => '#zeptojs', - 'text' => 'Zepto', - 'title' => 'Zepto', - 'target' => '_blank' - ) - ); - foreach($this->_jsDocs as $jsDoc){ - foreach($jsDoc as $key => $jsFile){ - $fileComment = $jsFile->getFileComment(); - if ($fileComment->name) { - $this->_fileLinks[$key] = array( - 'link' => '#' . $this->gennerateCommentId($fileComment), - 'text' => $fileComment->name, - 'title' => $key - ); - } - } - } - } -} \ No newline at end of file diff --git a/build/fis.js b/build/fis.js deleted file mode 100644 index bd85749e..00000000 --- a/build/fis.js +++ /dev/null @@ -1,82 +0,0 @@ -/** - * @fileOverview 负责生成fis包。 - * 生成路径 dist/fis/gmu_@version. - * - * 未完工。 - */ -(function(){ - 'use strict'; - - var dist = require('./dist'), - file = require('./util/file'), - helper = require('./util/helper'), - Q = require('q'), - path = require('path'), - pkg = require("../package"); - - function buildForFis( files ){ - var config = require("./config"), - opt = config.fis, - gmu = config.dist.gmu, - prefix = path.resolve(gmu.path) + path.sep, - cssPrefix = path.resolve(gmu.cssPath) + path.sep, - dest = opt.dest, - restCss = {}, - render = function(item) { - var folder = '', - matches, - module; - - matches = item.path - .match(/([^\/]+)\/([^\/]+)\.js$/i); - - if(matches) { - - switch(matches[1]) { - case 'core': - folder = 'base' + path.sep; - break; - - default: - break; - } - - } - } - - dest = dest.replace(/@version/ig, pkg.version); - - //如果已经存在则删除 - file.rmdir(dest); - - file.mkdir(dest); - files - .filter(function( item ){ - return item.path !== 'core/zepto.js'; - }) - .forEach(render); - - - } - - - //提供直接调用 - var run = exports.run = function() { - return Q - .try(dist.getComponents) - .then(buildForFis) - .fail(function(reason){ - console.log(reason); - }); - }; - - //标记是一个task - exports.task = true; - - - exports.init = function(cli) { - cli.command('fis') - .description('生成fis包') - .action(run.bind(cli)); - }; -})(); \ No newline at end of file diff --git a/build/jshint.js b/build/jshint.js deleted file mode 100644 index 241d6b3a..00000000 --- a/build/jshint.js +++ /dev/null @@ -1,26 +0,0 @@ -/** - * @fileOverview 规范检测工具 - */ -(function(){ - "use strict"; - - var jshint = require('jshint').JSHINT, - run; - - - //提供直接调用 - run = exports.run = function() { - - - }; - - //标记是一个task - exports.task = true; - - - exports.init = function(cli) { - cli.command('jshint') - .description('规范检测工具') - .action(run.bind(cli)); - }; -})(); \ No newline at end of file diff --git a/build/util/file.js b/build/util/file.js deleted file mode 100644 index 6a0ef8ae..00000000 --- a/build/util/file.js +++ /dev/null @@ -1,147 +0,0 @@ -/** - * @fileOverview 文件操作方法集合。 - */ -(function() { - "use strict"; - - var fs = require("fs"), - path = require("path"), - FILE_ENCODING = 'utf-8'; - - function callEach(args, cb) { - var ret; - args = Array.isArray(args) ? args : [args]; - ret = args.map(cb); - return ret.length > 1 ? ret : ret[0]; - } - - //合并多个文件 - - function concat(files, dest, banner, separator) { - var contents; - - banner = banner || ''; - separator = separator || '\n'; - - contents = read(files.filter(function(file) { - - //过滤掉不存在的文件 - return exists(file); - })); - - mkdir(path.dirname(dest)); //确保文件夹存在 - - //写入目标文件 - write(dest, banner + separator + contents.join(separator)); - } - - //用uglify压缩文件 - - function minify(files, options) { - var uglify = require('uglify-js'); - - return uglify.minify(files, options).code; - } - - //如果文件夹不存在,尝试创建它 - - function mkdir(dirPaths, mode) { - - // Set directory mode in a strict-mode-friendly way. - /*jshint eqnull:true */ - if (mode == null) { - mode = parseInt('0777', 8) & (~process.umask()); - } - - return callEach(dirPaths, function(dirPath) { - - dirPath = dirPath.split(/[\/\\]/g); - dirPath.push(''); - - dirPath.reduce(function(parts, part) { - var subPath; - - subPath = path.resolve(parts); - - if (!exists(subPath)) { - - try { - fs.mkdirSync(subPath, mode); - } catch (e) { - throw new Error("创建目录\"" + subPath + "\"失败(错误代码:" + e.code + ")"); - } - } - return parts + path.sep + part; - }); - }); - } - - function rmdir( dirPaths ) { - var rm = function( item ){ - var stat, - children; - - if( !exists(item) ) return ; - - stat = fs.statSync(item); - - if( stat.isDirectory() ) { - children = fs.readdirSync(item); - - children - .map(function( child ){ - return item + path.sep + child; - }) - .forEach(rm); - - fs.rmdirSync(item); - } else if(stat.isFile() ) { - fs.unlinkSync(item); - } - } - - return callEach(dirPaths, rm); - } - - function caculateSize(files) { - return callEach(files, function(file) { - var size = fs.statSync(file).size, - units = ['B', 'KB', 'MB', 'TB'], - unit = units.shift(); - - while (size > 1024 && units.length) { - unit = units.shift(); - size = size / 1024; - } - - return size.toFixed(2) + ' ' + unit; - }); - } - - function exists() { - var filepath = path.join.apply(path, arguments); - return fs.existsSync(filepath); - } - - function read(files, file_encoding) { - return callEach(files, function(file) { - return fs.readFileSync(file, file_encoding || FILE_ENCODING); - }); - } - - function write(filename, content, file_encoding) { - mkdir(path.dirname(filename)); - return fs.writeFileSync(filename, content, file_encoding || FILE_ENCODING); - } - - //expose - exports.concat = concat; - exports.minify = minify; - exports.mkdir = mkdir; - exports.rmdir = rmdir; - exports.caculateSize = caculateSize; - exports.exists = exists; - exports.read = read; - exports.write = write; - -})(); \ No newline at end of file diff --git a/build/util/helper.js b/build/util/helper.js deleted file mode 100644 index 339cd56d..00000000 --- a/build/util/helper.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * @fileOverview 数组帮助类方法。包括curry, 和unCurryThis. - */ -(function () { - "use strict"; - - var emptyArray = [], - helper = exports; - - function unCurryThis(f) { - var call = Function.call; - return function () { - return call.apply(f, arguments); - } - } - - function curry(f) { - var args = helper.slice(arguments, 1); - return function () { - return f.apply(this, helper.concat(args, helper.slice(arguments, 0))); - } - } - - function strReplace( search, replace, subject) { - var r = new RegExp(''+search, 'ig'); - return subject.replace( r, replace); - } - - helper.unCurryThis = unCurryThis; - helper.curry = curry; - helper.strReplace = strReplace; - - ["push", "pop", "shift", "unshift", "slice", - "splice", "map", "filter", "forEach", "concat", - "reduce"].forEach(function (name) { - helper[name] = unCurryThis(emptyArray[name]); - }); - - helper.debug = function( exit ){ - var args = helper.slice(arguments, 0); - - exit = args.pop(); - if(typeof exit !== 'boolean') { - args.push(exit); - exit = false; - } - - console.log.apply(console, args); - exit && process.exit(1); - } - - emptyArray = null; -})(); \ No newline at end of file diff --git a/build/util/shell.js b/build/util/shell.js deleted file mode 100644 index 1b58e94c..00000000 --- a/build/util/shell.js +++ /dev/null @@ -1,27 +0,0 @@ -/** - * @fileOverview 运行shell命令。 - */ -(function () { - "use strict"; - - var spawn = require('child_process').spawn, - Q = require('q'); - - module.exports = function (cmd) { - var deferred = Q.defer(), - parts = cmd.split(/\s+/g), - p = spawn(parts.shift(), parts); - - //todo handle this after thread to be closes. - - p.stdout.on('data', function (data) { - deferred.resolve(data.toString().trim()); - }); - - p.stderr.on('data', function (data) { - deferred.reject(data.toString().trim()); - }); - - return deferred.promise; - } -})(); \ No newline at end of file diff --git a/convert.js b/convert.js deleted file mode 100644 index 861dd2d6..00000000 --- a/convert.js +++ /dev/null @@ -1,39 +0,0 @@ -/** - * @fileOverview 简单的markdown,代码格式转换工具 - * 使用方法 `node convert.js ../_standard/README.md` - * - */ -(function() { - 'use strict'; - - var files = [], - path = require('path'), - fs = require('fs'), - argv = process.argv, - len = argv.length, - i = 2; - - for (; i < len; i++) { - files.push(argv[i]); - } - - if (files.length) { - - files.filter(function(file) { - return fs.existsSync(file); - }).forEach(function(file) { - var content = fs.readFileSync(file, 'utf-8'), - - - content = content.replace(/^```.*\n([\s\S]+?)^```/mg, function(m0, m1) { - return ('\n' + m1).replace(/^/mg, ' '); - }); - - file = file.replace(/\.([^\.]+)$/, '.convert.$1'); - fs.writeFileSync(file, content, 'utf-8'); - }); - } else { - console.log('请指定文件'); - } - -})(); \ No newline at end of file diff --git a/examples/assets/app.js b/examples/assets/app.js new file mode 100644 index 00000000..ab532aa9 --- /dev/null +++ b/examples/assets/app.js @@ -0,0 +1,100 @@ +$(function(){ + var html = ''; + + $('#scroller1 ul').remove(); + $('#scroller1').append(html); + // $('.pages').height($('#J_widgetList').height()); + + setTimeout(function(){ + new iScroll('S_widgets'); + $(window).trigger('resize'); + }, 200); +}); + +$(function(){ + demos.imglazyload = [ + { + file: '../extend/imglazyload/imglazyload.html', + title: '图片延迟加载' + },{ + file: '../extend/imglazyload/imglazyload_addimg.html', + title: '点击加载图片' + } + ,{ + file: '../extend/imglazyload/imglazyload_error.html', + title: '图片加载错误处理' + },{ + file: '../extend/imglazyload/imglazyload_iscroll.html', + title: 'iScroll中使用图片延迟加载' + } + ]; +}); + +$(function(){ + var widgetSection = $('#S_widgets').show(), + demoSection = $('#S_demos'); + + // $('.pages').css('overflow', 'hidden'); + + demoSection.css('-webkit-transform', 'translateX(100%)'); + $('.__page__').css('-webkit-transition', 'all .3s ease-in-out'); + + $('#S_widgets a').click(function(e){ + var widgetName = $(this).attr('href'); + + location.hash = widgetName; + e.preventDefault(); + }); + + $('.btn_back').click(function(){ + widgetSection.css('-webkit-transform', 'translateX(0)'); + demoSection.css('-webkit-transform', 'translateX(100%)'); + location.hash = ''; + }); + + var updateDemoSection = function(widget){ + var demolist = demos[widget], + html = '
    '; + + demolist.forEach(function(item, index){ + html += '
  • ' + item.title + '
  • '; + }); + + html += '
'; + + $('#scroller2 ul').remove(); + $('#scroller2').append(html); + $('#scroller2 h3 span').html(widget + ' Demos'); + + new iScroll('S_demos'); + } + + var updatePage = function(){ + var widgetName = location.hash.replace('#', ''); + + if(widgetName === '' || !demos[widgetName]){ + widgetSection.css('-webkit-transform', 'translateX(0)'); + demoSection.css('-webkit-transform', 'translateX(100%)'); + }else{ + updateDemoSection(widgetName); + widgetSection.css('-webkit-transform', 'translateX(-100%)'); + demoSection.show(); + window.scrollTo(0, 0); + setTimeout(function(){ + demoSection.css('-webkit-transform', 'translateX(0)'); + }, 0); + } + } + + window.onhashchange = function(e){ + updatePage(); + } + + updatePage(); +}); \ No newline at end of file diff --git a/examples/assets/demo.css b/examples/assets/demo.css new file mode 100644 index 00000000..50458766 --- /dev/null +++ b/examples/assets/demo.css @@ -0,0 +1,104 @@ +html, +body { + height: 100%; + width: 100%; +} + +.__page__ { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; + background-color: #FFF; + display: none; +} + + +.pages { + position: relative; + width: 100%; + height: 100%; + overflow-x:hidden; +} +h3 { + background: #2b88cf; + color: #FFF; + line-height: 2.5em; + padding-left: 1em; +} + +ul li { + position: relative; + border-bottom: solid 1px #CCC; +} + +ul a { + color: #B2B2B2; + text-decoration: none; + display: block; + background: no-repeat right center url(data:image/png;base64,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); + -webkit-background-size: 45px 14px; +} + +/* widget_page */ +.widget_page ul img { + position: absolute; + width: 54px; + left: 10px; + margin-top: -27px; + top: 50%; +} +.widget_page ul img.newIcon{ + width: 22px; + height: 12px; + right: 60px; + left: auto; + top: 70%; +} + +.widget_page ul a { + padding: 1em 1em 1em 80px; + min-height: 50px; +} + +.widget_page ul a .title { + display: block; + font-size: 16px; + color: #333; + font-weight: bold; +} + +.widget_page ul li.ui-state-hover { + background: #ddd; +} + +.widget_page ul li.ui-state-hover a { + color: #333; +} + +/* demo_page */ +.demo_page li a { + line-height: 50px; + padding-left: 1em; + color: #333; +} +.demo_page h3 { + position: relative; + padding-left: 40px; +} +.btn_back { + position: absolute; + left: 4px; + top: 4px; + width: 32px; + height: 32px; + padding: 0; + display: inline-block; + border-radius: 3px; + background: url(./img/back.png) center center; + background-size: 80% 80%; +} +.btn_back:hover { + background-color: #69a2cf; +} \ No newline at end of file diff --git a/examples/assets/demos.js b/examples/assets/demos.js new file mode 100644 index 00000000..d821b18d --- /dev/null +++ b/examples/assets/demos.js @@ -0,0 +1 @@ +var demos = {"add2desktop":[{"file":"add2desktop/add2desktop.html","title":"render方式创建add2desktop"},{"file":"add2desktop/add2desktop_icon.html","title":"render方式创建add2desktop"}],"button":[{"file":"button/button.html","title":"普通按钮"},{"file":"button/button_icon.html","title":"带图标的按钮"},{"file":"button/button_iconpos.html","title":"设置图标位置的按钮"},{"file":"button/button_input.html","title":"表单按钮"}],"calendar":[{"file":"calendar/calendar.html","title":"日历控件"},{"file":"calendar/calendar_monthyearchangeable.html","title":"可修改年月的日历控件"},{"file":"calendar/calendar_picker.html","title":"日历控件 - picker"},{"file":"calendar/calendar_range.html","title":"设置日期可选范围的日历控件"},{"file":"calendar/calendar_select.html","title":"两个相互联动的日历控件"}],"dialog":[{"file":"dialog/dialog.html","title":"普通对话框"},{"file":"dialog/dialog_position.html","title":"定位对话框"}],"dropmenu":[{"file":"dropmenu/dropmenu.html","title":"基本的下拉菜单"},{"file":"dropmenu/dropmenu_arrow.html","title":"带箭头的下拉菜单"},{"file":"dropmenu/dropmenu_collision.html","title":"自动调整位置的下拉菜单"},{"file":"dropmenu/dropmenu_horizontal.html","title":"选项水平排列的下拉菜单"},{"file":"dropmenu/dropmenu_placement.html","title":"下拉菜单定位展示"}],"gotop":[{"file":"gotop/gotop.html","title":"普通的回到顶部组件"},{"file":"gotop/gotop_iscroll.html","title":"iscroll中的回到顶部"}],"historylist":[{"file":"historylist/historylist.html","title":"基本的历史记录组件"}],"navigator":[{"file":"navigator/navigator.html","title":"普通的导航栏"},{"file":"navigator/navigator_evenness.html","title":"宽度平均分配的导航栏"},{"file":"navigator/navigator_fix.html","title":"内容固定的导航栏"},{"file":"navigator/navigator_scrollable.html","title":"可内滚的导航栏(1)"},{"file":"navigator/navigator_scrolltonext.html","title":"可内滚的导航栏(2)"}],"panel":[{"file":"panel/panel.html","title":"面板组件"},{"file":"panel/panel_hide.html","title":"页面滚动时面板关闭"},{"file":"panel/panel_iscroll.html","title":"使用iscroll的面板组件"},{"file":"panel/panel_position.html","title":"同一面板多种方式打开"}],"popover":[{"file":"popover/popover.html","title":"基本的Popover"},{"file":"popover/popover_arrow.html","title":"带箭头的Popover"},{"file":"popover/popover_collision.html","title":"自动调整位置的Popover"},{"file":"popover/popover_placement.html","title":"支持定位的Popover"},{"file":"popover/popover_spare.html","title":"Popover节省方式调用"}],"progressbar":[{"file":"progressbar/progressbar.html","title":"横向的进度条"},{"file":"progressbar/progressbar_vertical.html","title":"竖向的进度条"}],"refresh":[{"file":"refresh/refresh.html","title":"点击加载"},{"file":"refresh/refresh_endhide.html","title":"加载结束后隐藏"},{"file":"refresh/refresh_iOS5.html","title":"上下加载(iOS5以上适用)"},{"file":"refresh/refresh_iOS5_endstatus.html","title":"设置加载结束后的逻辑"},{"file":"refresh/refresh_iscroll.html","title":"上下加载(iscroll)"},{"file":"refresh/refresh_iscroll_custom.html","title":"自定义加载(iScroll)"},{"file":"refresh/refresh_lite.html","title":"上拉加载(lite版)"},{"file":"refresh/refresh_lite_custom.html","title":"自定义加载(lite版)"}],"slider":[{"file":"slider/slider.html","title":"普通的图片轮播"},{"file":"slider/slider_dynamic.html","title":"动态加载图片的图片轮播"},{"file":"slider/slider_loop.html","title":"无缝滑动的图片轮播"},{"file":"slider/slider_multiview.html","title":"可视区域显示多张图片的图片轮播"}],"suggestion":[{"file":"suggestion/suggestion.html","title":"suggestion"},{"file":"suggestion/suggestion_close.html","title":"suggestion关闭后不再显示"},{"file":"suggestion/suggestion_custom.html","title":"suggestion自定义渲染列表"},{"file":"suggestion/suggestion_iscroll.html","title":"suggestion列表使用iscroll展示"},{"file":"suggestion/suggestion_posAdapt.html","title":"suggestion位置自定义"},{"file":"suggestion/suggestion_render.html","title":"render方式创建suggestion"},{"file":"suggestion/suggestion_share.html","title":"多个suggestion共享div"},{"file":"suggestion/suggestion_submit.html","title":"suggestion指定提交数据的form"}],"tabs":[{"file":"tabs/tabs.html","title":"选项卡"},{"file":"tabs/tabs_ajax.html","title":"使用ajax加载内容的选项卡"},{"file":"tabs/tabs_history.html","title":"支持前进后退的选项卡"},{"file":"tabs/tabs_json.html","title":"使用ajax(返回值为json格式)加载内容的选项卡"},{"file":"tabs/tabs_nocache.html","title":"不缓存内容的选项卡"},{"file":"tabs/tabs_render.html","title":"render模式创建选项卡"},{"file":"tabs/tabs_tabs.html","title":"选项卡嵌套"}],"toolbar":[{"file":"toolbar/toolbar.html","title":"普通的toolbar"},{"file":"toolbar/toolbar_fixed.html","title":"滚动时固定在顶部的toolbar"},{"file":"toolbar/toolbar_fixed_top.html","title":"位置固定的toolbar"}]}; \ No newline at end of file diff --git a/examples/assets/dialog_demo.css b/examples/assets/dialog_demo.css new file mode 100644 index 00000000..5144185a --- /dev/null +++ b/examples/assets/dialog_demo.css @@ -0,0 +1,157 @@ +/** dialog demo css */ + +.article { + color: #000; +} + +.article h1 { + font-size: 18px; + font-weight: bold; + border-left: 5px solid #33c64b; + padding-left: 15px; + margin: 25px 0 0; +} + +.article .info p { + margin: 5px 20px 10px; + border-bottom: 1px solid #e4e4e4; + font-size: 12px; + padding-bottom: 10px; +} + +.article .text { + padding: 0 20px; + line-height: 1.6; +} + +.login-dialog .ui-dialog-content { + padding: 0; +} + +.login-dialog .ui-dialog-title { + background-color: transparent; + height: auto; + line-height: 1.0; +} + +.login-dialog .ui-dialog-close { + color: black; +} + +.login-dialog h3 { + font-size: 16px; + text-align: center; + color: #2874FF; + font-weight: bold; + padding: 16px 0 13px; +} + +.login-dialog p { + line-height: 1.6; + padding: 0 20px; +} + +.login-dialog-dark { + background-color: #343A41; + color: #A3A3A3; + -webkit-border-radius: 3px; +} + +.login-dialog-dark h3 { + color: #2874FF; +} + +.login-dialog-dark .ui-dialog-btns .ui-btn { + color: #A3A3A3; + background-color: #282c32; + border-color: #202327; +} + +.login-dialog-dark .ui-dialog-btns .ui-state-hover { + background-color: #21252b; +} +.vote-dialog p{ + height: 24px; + line-height: 24px; + +} +.vote-dialog p.vote { + -webkit-background-size: 219px 25px; + background-size: 219px 25px; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAbYAAAAzCAYAAAD7Ay2vAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6RTBGMTcyMDJCRDBDMTFFMTk2MUVCOEQwNkUzRjY5MDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6RTBGMTcyMDNCRDBDMTFFMTk2MUVCOEQwNkUzRjY5MDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEYxNzIwMEJEMEMxMUUxOTYxRUI4RDA2RTNGNjkwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpFMEYxNzIwMUJEMEMxMUUxOTYxRUI4RDA2RTNGNjkwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PkB4tC0AABi6SURBVHja7F0JeFPl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") no-repeat center center; + height: 48px; +} + +.vote-dialog h2 { + color: #5b5b5b; + font-size: 18px; +} + +.share-dialog { + -webkit-box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.6); + -webkit-border-radius: 3px; + -webkit-tap-highlight-color: rgba(255, 255, 255, 0); + background:#fff; +} + +.share-dialog .ui-dialog-content { + padding: 0; +} + +.share-list { + margin: -1px; + list-style: none; +} + +.share-list li { + border-top: 1px solid #ededed; + list-style: none; + height: 44px; + line-height: 44px; + padding: 0 0 0 56px; + font-size: 17px; + color: #232323; +} + +.share-dialog .ui-dialog-btns { + margin: 0; +} + +.share-list .renren { + -webkit-background-size: 33px 19px; + background-size: 33px 19px; + background-repeat: no-repeat; + background-position: 10px center; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEIAAAAnCAYAAAC7bZ4BAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzJCMzk1NkRCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzJCMzk1NkVCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpFMEYxNzIwNEJEMEMxMUUxOTYxRUI4RDA2RTNGNjkwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozMkIzOTU2Q0JEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PgRpPSgAAAXzSURBVHja1FoPaFZV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"); +} + +.share-list .sina { + background-repeat: no-repeat; + background-position: 14px center; + -webkit-background-size: 24px 19px; + background-size: 24px 19px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAnCAYAAABJ0cukAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzJCMzk1NzFCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzJCMzk1NzJCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozMkIzOTU2RkJEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozMkIzOTU3MEJEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PrHuanUAAAmSSURBVHjatFkLUFTn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"); +} + +.share-list .sms { + background-repeat: no-repeat; + background-position: 13px center; + -webkit-background-size: 24px 19px; + background-size: 24px 19px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MzJCMzk1NzVCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MzJCMzk1NzZCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDozMkIzOTU3M0JEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDozMkIzOTU3NEJEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PoCWK+cAAA3WSURBVHjazFprjGTH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"); +} + +.share-list .email { + background-repeat: no-repeat; + background-position: 13px center; + -webkit-background-size: 27px 26px; + background-size: 27px 26px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADYAAAA1CAYAAAAK0RhzAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NjM2MjUxNzhCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NjM2MjUxNzlCRDBFMTFFMTk2MUVCOEQwNkUzRjY5MDQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo2MzYyNTE3NkJEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo2MzYyNTE3N0JEMEUxMUUxOTYxRUI4RDA2RTNGNjkwNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PiBQf+MAABA6SURBVHjazFpZjBxH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"); +} + +.login-content p { + margin: 1em 0 0; +} +#dialog1, #dialog2, #dialog3, #dialog4 { + display: none; +} \ No newline at end of file diff --git a/examples/assets/example.js b/examples/assets/example.js new file mode 100644 index 00000000..6887f752 --- /dev/null +++ b/examples/assets/example.js @@ -0,0 +1,163 @@ +(function($){ + //事件兼容pc,做测试用的 + (function () { + var $onFn = $.fn.on, + $offFn = $.fn.off, + transEvent = { + touchstart: 'mousedown', + touchend: 'mouseup', + touchmove: 'mousemove', + tap: 'click' + }, + transFn = function(e) { + var events, org, event; + if($.isObject(e)){ + org = e; + $.each(e, function(key){ + event = parse(key); + !$.support.touch && transEvent[event.e] && (org[transEvent[event.e]+event.ns] = this); + }); + return org; + }else { + events = []; + $.each((e || '').split(' '), function(i, type) { + event = parse(type); + events.push(!$.support.touch && transEvent[event.e] ? transEvent[event.e]+event.ns : type); + }); + return events.join(' '); + } + }, + parse = function(event) { + var idx = event.indexOf('.'), e, ns; + if(idx>-1) { + e = event.substr(0, idx); + ns = event.substr(idx); + } else { + e = event; + ns = ''; + } + return {e:e, ns:ns}; + }; + + $.extend($.fn, { + on: function(event, selector, callback) { + return $onFn.call(this, transFn(event), selector, callback); + }, + off: function(event, selector, callback) { + return $offFn.call(this, transFn(event), selector, callback); + } + }); + })(); + + ({ + loadCount: 0, + backUrl: $('#bootstrap').attr('data-backurl') || '../..', + pages: ($('#bootstrap').attr('data-page') || '').split(','), + basePath: { + js: $('#bootstrap').attr('data-jspath') || '../../../src/' , + css: $('#bootstrap').attr('data-csspath') || '../../../assets/' + }, + requires: { + css: ['icons.default.css', 'widget/button/button.css', 'widget/button/button.default.css', 'widget/dropmenu/dropmenu.css', + 'widget/dropmenu/dropmenu.default.css', 'widget/toolbar/toolbar.css', 'widget/toolbar/toolbar.default.css'], + js: ['core/touch.js', 'core/highlight.js', 'core/fix.js', 'widget/button.js', 'widget/dropmenu.js', 'widget/toolbar.js'] + }, + initHeader: function () { + var that = this, + jss = that.requires.js, + loaded = {}, + i = 0, + len = jss.length, + path; + + //收集已经加载进来的js + $('script').each(function(){ + if(/([^\/]+\/[^\/]+\.js)$/i.test(this.src)){ + loaded[RegExp.$1] = true; + } + }); + + $.each(that.requires['css'], function (i, path) { + that.addResource(that.basePath['css'] + path, 'css') + }); + + for( ; i < len; i++) { + path = jss[i]; + loaded[path] ? jss.splice((len--, i--), 1) : + that.sendRequest(that.basePath['js'] + path, that.addResource); + } + }, + addResource: function (text, type, done) { + var head = document.head || document.getElementsByTagName('head')[0], + body = document.body || document.getElementsByTagName('body')[0], + node; + if (type == 'css') { + $('').attr({ + type: 'text/css', + rel: 'stylesheet', + href: text + }).appendTo(head); + } else { + node = document.createElement('script'); + node.type = "text/javascript"; + node.innerHTML = text; + body.appendChild(node); + } + + done && this.initToolbar(); + }, + sendRequest: function (url, cb) { + var that = this, + xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.onreadystatechange = function() { + if(xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) { + if(xhr.readyState === 4) { + that.loadCount++; + cb && cb.apply(that, [xhr.responseText, 'js', that.loadCount === that.requires['js'].length]); + } + } + }; + xhr.send(null); + }, + initToolbar: function () { + var that = this, + pages = that.pages, + $header = $('
').prependTo('body'), + btn = pages.length && pages[0] ? $.ui.button({ + label: '切换' + }).root() : '', + toolbar = $.ui.toolbar({ + title: document.title, + container: $header, + useFix:!($.os.ios && parseInt($.os.version) == 4), + btns: btn, + backButtonClick: function(){ + location.href = that.backUrl; + } + }), item; + if(btn && btn.length){ + var pageArr = []; + for(var i = pages.length; i--;){ + item = pages[i].split('|'); + pageArr.unshift({ + text: item[0], + href: item[1] + }); + } + $.ui.dropmenu({ + align: 'right', + arrowPos: {left:'auto', right:'17px'}, + items: pageArr, + container: $header.find('.ui-toolbar').first(), + cacheParentOffset: false + }).bindButton(btn); + + } + setTimeout(function () { + $(document).trigger('headready'); + }, 100); + } + }).initHeader(); + +})(Zepto); \ No newline at end of file diff --git a/examples/assets/gmu_a2d.png b/examples/assets/gmu_a2d.png new file mode 100644 index 0000000000000000000000000000000000000000..2afba4b4380d74a3d0d7b4552483f24e001978f2 GIT binary patch literal 17269 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 literal 0 HcmV?d00001 diff --git a/examples/assets/icon.png b/examples/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..102835600eef6a8ef2142e5ad3bc6d51319204ef GIT binary patch literal 18894 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
6A9>If;sv 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

)&169?bH1z4^`Bcvrp#Muc*f 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 literal 0 HcmV?d00001 diff --git a/examples/assets/img/button.png b/examples/assets/img/button.png new file mode 100644 index 0000000000000000000000000000000000000000..f5e2648bc2b971e6b381b989765e4d5572825a47 GIT binary patch literal 2610 zcmbVOc~BEs8V@6f1Iqv&h$0w5L`6u_AqRJ!_9D?JqjRWp%mE|A%s=D9zUVp#ecUN_yn~S5a z_9|@z0-@`)jp+{Wl(}cICj35P6dMn3D-|psg@+_qq2$US1f4Glf{;!kZV2QKaryi9 z{0?nKAQn{$J$)2DAe+jQh%nqa9gIpOh0zGaW|~UM<%L2DWDpc06x*R*SJ$DCLcSf! zn+W1SDFYG+w?)Vxj|dk}UPLI5!bj1zAUCV1Fo6hCaFHrem{?9#*`dDhQek=S8jC`H zQBj22q5g8p2XsR+Br*s|#Ne!XI1+#)5ikG&Me4yim*yV@i18B1o)oV%ni#2!=1@Q*k6)8~~6BI5Hj<0l?nYo=zbV z$@Vt36cRwfFK~PdO9lWuKp^9ZEHVKASb!~wL}0KS>m~#NMxQ8N!UU|xd|i+iCiF&A{ib;41ff=JfV2*X0G0FRB*gZNG9A1 z@f~Cm5%Npwslsn~fCK(Fa$7RsKqunJ4tOS>NFdQs^H~1>lQk^t40f*D{?>g9S8z+u ziC?zNh#yT%}O?8PlH`8j2lLzt@tT8U*#emq7wT-JbV zwa9wSR{qIZmoZl8d61nSY;jyWbnr$E??g+to5M(P3_Gp4uL)7VT!?Y@J&II$>hhZs(v1i7kJ8IaLp_^$vL|@u5l*FDB%giZ2ilzu>*0_ z2ifCWhMJq3r~EMQJ`N2H-9Nsvi&>i9I*f0qy&pz8IR&rP_SR2 zxNDQecDZ%D$v)TZW>T);l+%(uZXG6T)@0k)RvNiueNGT3wOh6d2bm=rCfGA(qve@K zJoSC?WwApz+l~7?BNE34Tsm}GB^mdmY zoHWrj-oatysWZ&QUB!Q7F{8!rC1gF%tTgVsg6FP9j=Q=z=?Gi(*F;qRR^M%{`JAy|te`MHb)N*714f!0L2H zON-7Y@Io5CzEu9EobYk&t6HSz`1&*Qtt;0jdEhdy))`J6@au3YH`31)fRFQ2DN5d^>s51;q2==~aIf}Y zlTcT?>umI4t=`7-r+Ci)w3Ic?97AmQJd>i8U9xh#v~ViCXr@FRCsvEZy{K;;d1U@N zAgs9zv$PoPeeCVnV?^zz7xfKdUn&7))JSDO!*0qjLH5~c-$lR7pYV#n;E-4>iT zm(rRSL}<_e{OcyJFR~f&n|Z0!)LWD>y)pT;>2+F1LNV(S?-)kjaL!rN(c*rk&Yex( zNf^I<7c^)hq4d&`@yTZ6sLZvo>?Nj&$zAaprTq9w)WE9cSC99aYn%5q=Gni+8|^f+`#N-WRl%id|NTaN&Tn?-0tZz@^` zd7-T5^u{QG7i zwjHn-R6Wexi+?tYCw6bD@EtQGb?1rtrG})XX@Tg~G7)#h^|N=|+dB;=$97j}w+G7$ zmJfeSy&_nu$9YTu%b)IVn3$N@IMW37Rr?ouez>xkUAp?{ONXhzkdQ;^AN0NarX6RH zw?{`UKc2ps2JK|^J>PCFzU1Ja5%uA*dBNJCfyNX`&LgFeeC6{`9-cb%4W(BPXGLLo wn4h9EKL^zwn$>CxFbj-FI3b_@84#t0$SCLwc+woiocoJ&V!1F&>;q%|1KtowF8}}l literal 0 HcmV?d00001 diff --git a/examples/assets/img/dialog.png b/examples/assets/img/dialog.png new file mode 100644 index 0000000000000000000000000000000000000000..d2d1e376054a4d537353c517698b930c491f54cc GIT binary patch literal 4902 zcmV+>6WQ#EP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z000P4NklF8?V@#S*+Qd#vZA@Em zX&(%Q6!OwMgiz8#OJADDKKUgi4>f&oKL||;A%v9HDYaW1FfNW`E2t*^h#g6Gv|4HJ z-JLt95AwBF*Sp%g(kih%aM_i(cV_h|Q52P|wODI$&Y@~SPE1VfS4th~?(SZn&*#bIa%ipZc!bV5f*_z=E>kQP zCq?AhD2o1Mt))__+yXg1KK|40?(W|f3I#Hm3{e!}oFmEfo!FF8Xsz))k4mLNu~=kw zcJ`OfxnBoCumJMx*|U4Qy1M?-*VlK`GIwj!TBEgQdU~2-v3MX1!z1eS>C;_GsSk#R zhK7CLzblwa!)z2qT)1#y64<1ja|e5RdhQv303w3tdGz-74m#(aF;Nul&t|iCwTm_a zn#<*I&h6JCveolE?!{(|!8y0Xh{$?l%&Nvm8mq5X5(2sm;I(s*B&g-|-R}9ARyw>q zAMwhWBELUZ;_`g-xwzm^-s6W`y7=+70z>(9VP;~>HFK+rCCiRKUgE`v`*`=eBMfz# z&jsY=Im_X*MZR+6A}7B;%*HO09%Qrj@|jtF@kk%f?^v@em#SyP<+$aByvGXflSU((Vl12tca_G%Jm()n4lw&7+m^Oe+&yE|9VnUj6qZAI(Jk=M&Av zd5s7-fq|Ukfj-A*ugCL`57J>&OLJKjcWuQ*uayFhouA{c=QZOc&AjLFNzP+7tB3?p zV3lC4aPErZqc=Zg&xqq|qn)fR8jjI5e4mf_z9~lHJY)tovD~i1+rCH*R0bWgTjePg#m0R zh)QQft)R0v!$TWjFzebY>(V~toJ*x$9~|lB>!lLsrxovq20K$h5J)~NvcRANZ4{jY zS=J4Be0z(}zOA{2#kJb`ww=ke2FZAeZ;W;@TM2nnJ5GJ*GdCR~pA%XGmdkmSJ1`+aE#bCFh zugB+!Eg3czggu*m^1fPVqw!~KoK`lv^;oP08owM)Q%+6AWYSgA>;`H9CgZwZtS8w? z0;{d=)l)o60c~qc#-GkPwAPCN#*<01+Nj@JkXq}T9ufm>dyOaQcFh_o1r4~S06%*~FrHrIQJ+b6ttS?0uiqSt_}2*t zEADnYaW$*no-2VnmsJer9nWlUy@=fslh)e0=X#QfCRQ)bIWAp=aXjde%bw0zn zs|xq!+W1uMXL2c#9>-lWF>F{DaemyOBDGN4SXRYcV~l3|21gV{HHKE{nQYZvmr@{@TB z@Rji5L(!r&G?`%=36OYwyrpjRO)vS>D*ChO+%@(4$pfQV{(Nb1QmMD@)u#CPQ)|6Q znbfX<$#<0Ti7LAS2W-IVy3P#S~inE8qM(dTLDH1Pp=aOGWEAujZ{rM ziKQ0yWKxUcKQ@w5im4FZn({dGKh58s^4ptuhVz+yOmB9q2BcQyvO(w5A&?R@oK@0n)(+&H;>R*T4M zK@h~K+Y&eRPIM%*Xsg#!eb-~rIY+r%MnsONW5KjY_5RT(MZB zR4QSuy{o{+;HT3aP;WWy}+StHancnW--Rlj;y=d0OOxW zgkeY+hF5@RjWMtJzQ3^1PO^3M=+O?~Ag~wM4h-J~WL^UP3%m{-HpY~E-^Un(i17ab Y01=Sjb-L^pTL1t607*qoM6N<$g2NGC`v3p{ literal 0 HcmV?d00001 diff --git a/examples/assets/img/dropmenu.png b/examples/assets/img/dropmenu.png new file mode 100644 index 0000000000000000000000000000000000000000..7ece961f3bd2aa7ae3285c5e986feb93460bb08d GIT binary patch literal 2453 zcmbVOd00~E8fV-!Ev>X1t%zL86gVg-1Sp6LCN88mbIT(fgcJ?}DlVmIr89L)amq~F zu1neCmey!lmQ%U3O=&ufrY&mAt&}Xwa++glcmC+`tR*K^!a*C3M`OHf}!01_zMIWE`G=BM=-A4F`F$L;)%tB=Ti5 z3@k{_lZm7X5iCJZF@n)>f`W!YJpB@aSjrW}2o>_L6f?_Yq?8S8ch13;oaeZ}Q87lBE!i3(4UG84szVVA(%Rec#ZO;&coY4k(L-kScnD zadPPM1&2fNN1PW)z&IAnOAtd61)D{~AP_8H#HZj%E_eWNcEURo5D@^FE=&fQM0934 zx{yf#i7>TSA^J| z#xlQ)rMSx=Pyx$=U^s53p#p@k0+tJ5DcXGv5euL>AWtNjI+?0B5)~3J3zCTvA-<;! z7Nb9>o+A2&2Y42X;m-0T1CC!JCj)r02jEF|cV;kI1Q!>~G?xGWWDSQngPZEMe{|o> z5z^9A;@4S1HeaU^k|4#CA+z>J9O@McrH#~z5v07=8|E)u7QFD2V92_#lx?x{a&#=i zqkDV$Y;If%*BG7!;TER`f;enWBvtPKO^>;5&ZW#FnbmgoIgzCU9=Ws=X72TkmzZbD zy6W!m)iHvP=h=~~3I&4uR{3MryUq!09ADobFX|sZ@A|6AZs((nGyi@0QV<**v3CBT z-2p6bzxMkMle_DUI~M(U`a-pRhp;}>&GaT?G?SGPt0yT5Sbl9-M!uD>$hdk;Pd`Vr zFW`9Bz`J+vP(Xy&q4g%Mo+a_KWic_s5nAI<$HtsW?}(axKeK%ax6PLTkGxhl&13)5*Qvf>D0+oth0#8 zC`R9AcKT5Mvfu497)%X0SXj8OIlm@=lgD)NPS}3=q2_S*d|6A<|CQT#65XYqSiw;#@K&|SRO>jx+hl}uvxe;nV`Wut#6GHU*BBgR-2 zJKfz9J;>8~dB4RbExli(gn^=sUwjfB5p)fE$luiT*SGdr=MMZ_cV)A$%yjbgQGIwa zqs{hCv#hEu*Hz=m9MnsCT(fPJ-GWY%S^jSiVcpj9at+mrVD@o?-oB)8b9O|ZXy>oI z+peUGdsgP039K~Bf&3QiJtqve9M@D0?yGd#*=G&s5(VJlUyeV2JZ52}^lfjLU2_X3 z^;N5{X zy6@%9>9f7q6D0KX6Ky`geK4s?)CuWnoX}Ofej+|N`vDca(z;v9a?>s|c-2HOHSfs| z?N037z&Hi9tz;(gZp>R^kaP8pjP~kPZ(#o-s_IZ?Z)T;fE6(jHR zQ8oJ|sntte(Rnn(ZBe;fZQX*Ww&@dpX537tZ|HxtWjObKF+9@KssEznWTjnico?+DlKzL@b)M+Dnt2mJF#4?TgrqZ)*b*@gTVc4v=Rc++o zo7h|U!^b<#`}}_XY157tyr!W+um0o3g2~l?{UKbJ|I}qNQ9zh2)C3F5Nj5c#L~MZw z?i1g8*FFr}93HXEPb54VwW)Z1azp*Z(qqq=q@u0t9$)V*Chuio3mb#yS`_*UHj^gQ4c7y)ZErMlKc#AkFn4Jm-&5K*S}+pJebVBV-m>3x zl4sp~lNYg2ldvSJDf>;>iS-z_tkXp}9PaFbPYa?@2OB00E31O5r+$>!9)7G!W>n_i D1C;HG literal 0 HcmV?d00001 diff --git a/examples/assets/img/gotop.png b/examples/assets/img/gotop.png new file mode 100644 index 0000000000000000000000000000000000000000..d8c1464344f13a99a3e0c37c9480b4bbf04b992c GIT binary patch literal 4606 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 literal 0 HcmV?d00001 diff --git a/examples/assets/img/imglazyload.png b/examples/assets/img/imglazyload.png new file mode 100644 index 0000000000000000000000000000000000000000..7ece961f3bd2aa7ae3285c5e986feb93460bb08d GIT binary patch literal 2453 zcmbVOd00~E8fV-!Ev>X1t%zL86gVg-1Sp6LCN88mbIT(fgcJ?}DlVmIr89L)amq~F zu1neCmey!lmQ%U3O=&ufrY&mAt&}Xwa++glcmC+`tR*K^!a*C3M`OHf}!01_zMIWE`G=BM=-A4F`F$L;)%tB=Ti5 z3@k{_lZm7X5iCJZF@n)>f`W!YJpB@aSjrW}2o>_L6f?_Yq?8S8ch13;oaeZ}Q87lBE!i3(4UG84szVVA(%Rec#ZO;&coY4k(L-kScnD zadPPM1&2fNN1PW)z&IAnOAtd61)D{~AP_8H#HZj%E_eWNcEURo5D@^FE=&fQM0934 zx{yf#i7>TSA^J| z#xlQ)rMSx=Pyx$=U^s53p#p@k0+tJ5DcXGv5euL>AWtNjI+?0B5)~3J3zCTvA-<;! z7Nb9>o+A2&2Y42X;m-0T1CC!JCj)r02jEF|cV;kI1Q!>~G?xGWWDSQngPZEMe{|o> z5z^9A;@4S1HeaU^k|4#CA+z>J9O@McrH#~z5v07=8|E)u7QFD2V92_#lx?x{a&#=i zqkDV$Y;If%*BG7!;TER`f;enWBvtPKO^>;5&ZW#FnbmgoIgzCU9=Ws=X72TkmzZbD zy6W!m)iHvP=h=~~3I&4uR{3MryUq!09ADobFX|sZ@A|6AZs((nGyi@0QV<**v3CBT z-2p6bzxMkMle_DUI~M(U`a-pRhp;}>&GaT?G?SGPt0yT5Sbl9-M!uD>$hdk;Pd`Vr zFW`9Bz`J+vP(Xy&q4g%Mo+a_KWic_s5nAI<$HtsW?}(axKeK%ax6PLTkGxhl&13)5*Qvf>D0+oth0#8 zC`R9AcKT5Mvfu497)%X0SXj8OIlm@=lgD)NPS}3=q2_S*d|6A<|CQT#65XYqSiw;#@K&|SRO>jx+hl}uvxe;nV`Wut#6GHU*BBgR-2 zJKfz9J;>8~dB4RbExli(gn^=sUwjfB5p)fE$luiT*SGdr=MMZ_cV)A$%yjbgQGIwa zqs{hCv#hEu*Hz=m9MnsCT(fPJ-GWY%S^jSiVcpj9at+mrVD@o?-oB)8b9O|ZXy>oI z+peUGdsgP039K~Bf&3QiJtqve9M@D0?yGd#*=G&s5(VJlUyeV2JZ52}^lfjLU2_X3 z^;N5{X zy6@%9>9f7q6D0KX6Ky`geK4s?)CuWnoX}Ofej+|N`vDca(z;v9a?>s|c-2HOHSfs| z?N037z&Hi9tz;(gZp>R^kaP8pjP~kPZ(#o-s_IZ?Z)T;fE6(jHR zQ8oJ|sntte(Rnn(ZBe;fZQX*Ww&@dpX537tZ|HxtWjObKF+9@KssEznWTjnico?+DlKzL@b)M+Dnt2mJF#4?TgrqZ)*b*@gTVc4v=Rc++o zo7h|U!^b<#`}}_XY157tyr!W+um0o3g2~l?{UKbJ|I}qNQ9zh2)C3F5Nj5c#L~MZw z?i1g8*FFr}93HXEPb54VwW)Z1azp*Z(qqq=q@u0t9$)V*Chuio3mb#yS`_*UHj^gQ4c7y)ZErMlKc#AkFn4Jm-&5K*S}+pJebVBV-m>3x zl4sp~lNYg2ldvSJDf>;>iS-z_tkXp}9PaFbPYa?@2OB00E31O5r+$>!9)7G!W>n_i D1C;HG literal 0 HcmV?d00001 diff --git a/examples/assets/img/linechart.png b/examples/assets/img/linechart.png new file mode 100644 index 0000000000000000000000000000000000000000..24807f9743f61621fccce3f54c9da6242219eb8d GIT binary patch literal 14184 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 Yg~~1tznr?Fu6mC$l^Bth2d5YR0H?D~O#lD@ literal 0 HcmV?d00001 diff --git a/examples/assets/img/panel.png b/examples/assets/img/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..d8cacf02bb1d0e2bbd9c7a3dec822cd50a179eca GIT binary patch literal 3055 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 literal 0 HcmV?d00001 diff --git a/examples/assets/img/piechart.png b/examples/assets/img/piechart.png new file mode 100644 index 0000000000000000000000000000000000000000..eaef34446b6d27f96df96d0d297e1621c4d25642 GIT binary patch literal 3432 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 literal 0 HcmV?d00001 diff --git a/examples/assets/img/refresh.png b/examples/assets/img/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..33ef7ba483244b6df8b7eeff836aa538b3f0a0f7 GIT binary patch literal 2890 zcmbVOdpwi-AD`4Zxpa&;9j!4tdgD)m1jC zfIuL1Duu*QtoWt(JFwz=ME5|lV%Z>e2@repL&dR7Apmk@^Fsg#mCFnR7yy$Ux2qkn z1A&yUaeM;A0ko|I7M}}eF6qD}T!8`&0@)EI0wyaG5JN(MFb>ZiI$M7o3gNKrq5c>e zk|uBl!a0<9A>bWP_hH3HvhZvu(E(y7At(sAfS3u9aHDu4g2W#BnU|oDmyQuo$Y&LC zq&@VDQvozjh%;XZKrnEmB@2l~L9o_vlr<7>jo%DGBT+~M3XMSGEKx`T21h`mAYUJ- z!kUmBN??%4Uu`LN_Rw&#SU^A^Vq;_Bu~u-tFbsjhIf7_rv1{Ser^RlfYfCjZZDP1_ zx0kQ)9W9p)g&h}u+!iH&o%R&gEW9NxLu{1=Za&?yGe6P{N?9Q}dE+Q7qurn~KN&6X+2OqxgrprU1POlyK=<9inL5(IquOlgS3N?J;Bdz_5w;`*I@Q5`S`k4 z9^+}HU+G!mLAT+T^BeR@UR4bj>kNONeHi zI3DXm%b1&5yT&Qx_qGvt%TCBt|1f5&RiSN;4suo5wo?O9@BR`EH)rht->vQm%x&|l zI0p(DeHL8fn`epI@N{($wuAI&WI!ORvn`&xE%lw_T~T^rmT^>9%fKVLg0i*V)V5;v zZ`$POEKuZ(jF=m^qdTy&whqhj2YUvk#A=VMH}Lqmw{_yesv6Y*8QMZrc;5WJPv;@G z0IAmY^x62KC|B;An1Fea!xg+<7~d=KNLsgD==h)ocI?CxdYFAwbtn7EIGMCY->@rZ zF@=Z>l>`Httx}@TrpNTM_9E2U#4{Aq3{1ktVpHqE$RS0Q(s{|;`QrJ$eFsq(wm^`7Vs)|!B21UAh)OE@dhXl?`_eZsR!_e zHqna)s6!J;Z{))%g~WzmnpgRlXX@|T|Jr`$)VVq#IB_bwXsV$j&t~+`B8#Ei(jh6; z%LNv;_0icNFI+~SY_syG3Cx*}qKZ0UZq7bV+r9q#V)-v#MO8(~qs7rLI^Tt<67Cj! z7Zav0nRVUyRwEMDy&J4lg(7;tT!mlYEB!2w`r(Fls~XMG<64rYa+2@dYov_JMy;o`_Y5v6E?4= zRMCyh&QF)TygQlow(dt#XJP#<$$~)RV@X7@tU6ZxWN_3~fzEZe$_9tObzdDexe<88F zN%!r7h0VvntU;9itogK6;-FdRyj!FG5#7wREiw&tqsHT|Qbdx3vEVCXKfLj_=?4cx zI7GiU0tEik<3hiG=IAz;%!#$=`}tf#mqD9}Opg+Mh-VoFyl7{ud*|g96}oy>=DWQy{dXHmsxO}3>#d>;Ja8xVKYTs8 z@d$Jn@Yzzd`@-Y^>&cj)r{qrWn*Gy4J4f{q)$9j+TxT5L=$>(-EjZW5`ahdqIihV%8lS4e#00I3qSz{dImmb$!`x@dg0v``~t%i4G&B zG5*p+z$2z8DR!S0RV~Xlf2yRsbkM$JkV3`UR9?2UYD>L(Z*{|1#b%u zZlX*L>K!E;@3tDvFx#rD=~`phyFb{=l}r|{oWE39XsV@>tj@fep(gwkcNjaKKdqX= z+)R*v{Oi>?Zt~`;;rhm!ngA+{r+pc2GlQ#4t*ym}zTOk^>LP0s^!TAeYvlZO@z+3E-&6LQE~Y%SSW(jk g%7U~mTn8zGYA+F2?nA3~E&bh6UFf88r=3av1>Qo^4gdfE literal 0 HcmV?d00001 diff --git a/examples/assets/img/slider.png b/examples/assets/img/slider.png new file mode 100644 index 0000000000000000000000000000000000000000..a81070c80df971e0e4a3f9aabcb407d267ef2342 GIT binary patch literal 2672 zcmbVOdpK0-AD>mGkhCf!>dc@EV`k1UGiGEhhD?k!GemM3<6z9ynKN!(l z7qkI`nb#oV2O&WmU#3tlB?@MBh)GffipF3zxF#tCLNSB@kx-0C=7Jw@X~hGgC>Q)z zDu>KbctEit?-Ur~rTFoMDPkcb3h(*_upx6igB+F)@*t=s=XiF(i<|V35cZ5`|)qYS=52Wr!fjUZ%8~ zV_-o_AuLiLBDoBhWfVlpRfr27_4Kb0qzbMmCKgeCB9|#YCJRj)DM_FpfkZM1{-84( z-yDj=`FDg=`bk@faH0P>|Bw7iezF20aUrE#1q;zCMqB;O)V~{=Rs0wOlOuq|5L!hq zfkX*?xZrS@n^EUQGJ%987pkO?3}Lfe@F;{BC5mE_X-;Giq&t%76jTI3cPDo@28~L0 zcW`3RKpJI^olu!+g11GS^W4v2sMNjFl?@4<3~W0vv%*B%3{%tv4DK8ZQfiMF~)p z7c7?oA5za0{euT&50;w;%ZmXz{1rI^Br`lgFNO!*&7DPYa>9SaM*TloBcaZaX1ncg z-8XlHw)Cv{X_nBK+Gn?hcPkJyAa$USVV43UqjU#k*S9hQG z>&`uR*1-$>kokJ==4oX*ZrXHXeEMD4*rwyb3yIqsm$-HMaqEaW#TB<)FG-N0C+^

Rw(#(;C|5>o z*x$5uYy~@p9#u=Pu^++JVP{f#wRc}NpPmQp#Imh(=f@NcM23ey3?i6hl$Ngg^77hJ z+~?~{y8Ug7fg{&X7WD>Lr{sIbeUtDdER{aDvVIegn(DePPiG+|{DSQ+}NreVea2 zq6epS8uZvbo$eb_1VL}1-4PK$no;P`Hwnfsfj&zM3k$d1! ze-^D?lQSjqttTw)GN2r=sLTee%8msZ*)9}tb3;3CZmK&maOio1OMSTRgDuxY!MpEY zxoF~rea9x})I%ieE=4pZmF}Zl*?f8?J!`oSHoq*8u+}#6ZFAoPa%u50gJG|U zU5B;@XW!K@4J z?a58IT)zk#c|51zRP}b^adT6^RjI1tpQH{;ZhSEVY;eBX! zQS9>QD@N%ze=l6zmnz`&d!NyH=<=-_fxov&xuE~f;l&1qlGAAceBB>XgEHE3u=29I zY4S$K(-PmYiDUKsTV;a>%hQV=)icf1wwRGuvgHXrs-R{&b)KTV^?QTt?}|eWFXXEl zRjEeZlSZjH6TKMSx~zUnE%9gJ^vb~j6X*K@NY%`@nDXN||G2_*8%cdfd{xbXjk+~9 z7Yf`@WG`Pgie>${qrW3ZGqQhs8Ts^GNgIgyn>o6%id?yNv6k})h@!X(04MdJKBdUOs#|;FL7QLx=UT2uhCjPxG%t# zZND?*bI;(t8KFEYt$cG9eT`w`2HbNatJg1@std4zo|5xc2|GLY?A=Ok<~IHGq~ys} zxHPyQkOk)VKWg=w zXNNni(*99I1G2+*eAc}y?9!`wmMw8IiNxv1%bZ@jQ^>im+D1?HI1Yba9T%OtY;A zzJw>KwkbYhnX)zHfZw(|oYCoBnerV+k>=Q`9SyjNV`;L@7b?Ye)Sn3vWm=h~!R0;W zde{`-TYgRD%cLg@JZv!DQLjsh4*y)f>qL^jI^0m_}gyPc5*U Uak}~j{RPCZJ^fgx-6PWf3;Z`xL;wH) literal 0 HcmV?d00001 diff --git a/examples/assets/img/suggestion.png b/examples/assets/img/suggestion.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f5a1bdfd52603ad36dd9f72b7161d07473bf92 GIT binary patch literal 2838 zcmbVOdpOkj8lQ-8T$Wst*lCEK%G{V4hLO3+Y(|nrtjU=9&Bd5YGlMbIX~)u5ZYjIS ztwdMll4D7(l?)|pM0D6lD5Q`}+ZkWN%B>V&a1DMrs|utAwEGhm`lll(tSdfG@333KzODw3;x>F{iGkAa$90stt0vu%eW<3PVW#S+K zC@P#PA_5$)r(6u|lY9Fy?*^m2>5`M4wmsF1QM(a2l>d0Rn1qoVG!^~ z6Dbb|`6H-6st=eb6a!!s6mHLeqY+@VBNX8XcXo8%0Y<_Ra2Ns!gJbLwa4ZUgg(JY9 z9*D}Dn90KWk~}{7Qmt?hj#Mhb!eG(S(a>lIs8Gy?A)K9^VQ?f2iL_T)*h^vrQo77u zAhG_;KmsHTF;^tz3I*U*MtYbqQi_A9BK<=GU*yYWbEJ|lnJw9V80*RC^ zU;v-}a#emmVV(XKizSKyx>P9k6AB|fH2ULLJ^p_4+TYlsdNTcu)4EaZStr3g&M3bNVyGTw*f~MWSbFo&4uAiYf8#oB)2oCAv#-O7 z3dla&8Z(Vd?Ck0ba zlYxQn2)%QL)b7O6{?sCi?0+tswJqF3?%!(cR=Q(5Biq)e5z9f^sOeh|$ad{&nVO%E z;_!ItYXx$GS}Uufw5CR9T)KosCU1V>tY{wU4Ub}R194|d<^klQy2L3@!j+1>q#(Py=xiZNbu`uz(ZAxtk zrp40=Mx0La0$Y?g(k)BO=Cyb$W3B2l+vxH-xg58{?uX#?7ZAJ~DWTu<3BJu*5ngJQ zTvAn1!0g66*`RG~6S{$a;y$5gIT%K_Kmo@}t!ht}nfFwLP%j%?^uLZ~Dd5+`U&&jC zqYZjB)Vs9nwi4TtXAeDUh|ha?t3P0Lh!LafU|_QOgAa7mI(Z{ntu$}!p1Y$RvNrB1 zD!?Rha??cX=6oGX+kz#pZ)M!3=y~0?-oDKaKSBLzL0YGqzQ#OhKF4~mOMz8D{a%Op zNz!3kb>(wPd6)0Wv+vy8qQF3M=j-qXKUD18KQk&suT&hzbltj9;p{2ij!$))u*&k9 zLQhox7Kx<9zWQnbvqeY56zZoe=y={HB}{)Mo<@u;|7@T6i)n(z;6~=zi_TTX$D7KFZ??H+ zmT#QE^QZx|=3(EUqx*X0J_3up8q9@jc5RjhKa+{^IrOH&*mUn}=MA}($neY2G}{=1 z3rNvys;iQ^iPxOka$!>D$5#Ir$R$_=x>-|0=ska#jGC>PVXt{`pe%HYu(`R4Jk!BooVBvlpXwS)#(zKNT3q%rd!QZM zG2YZWU!l?Qh+>VR0NU?8ywpNx9&?layx~%E>=%jLG@>^qm`mZ@L^@JeF5_IORd^;P||ksi$Gr zIccV&0lm33wjo2b7q`a|iLZxyyZaLHOGOSVzNg|+MwXwmn@?6b_`AJ)XLS}$LLXwn z8mbp+?s=Q305*1oKD(MTO!W5P&JNf=J%`N2*3{@nJ0 zD8EHA+eTbb_TIMqcZz9YBnu7JHNx z?;;ymj=@)O^=11@rn0ZBFzVOE+&Ug?;E9{I;{p9VTnFsAiN&KM0Uer)OYSCz9aesdk)8bHhrda{GqH1sfyn$NFEd zPjB)(cn_6IoUuL>8X9WC&8N|5n$7T_ph8#u@%8-Q8ke+3+MJ+~B9X`lmQx_Ca>z4lo4e0m%M1>^*nPqWmGLm?$jX9NIcdim znOt}D_as``!omVE;jLD7!=RR_+SHw{ZZ&1?@loVYu+q4sBj##08gp}VjUUu>K^cl% U!SjKm&8vT^6tXwz8X;8iANyItL;wH) literal 0 HcmV?d00001 diff --git a/examples/assets/img/tabs.png b/examples/assets/img/tabs.png new file mode 100644 index 0000000000000000000000000000000000000000..d8cacf02bb1d0e2bbd9c7a3dec822cd50a179eca GIT binary patch literal 3055 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 literal 0 HcmV?d00001 diff --git a/examples/assets/img/toolbar.png b/examples/assets/img/toolbar.png new file mode 100644 index 0000000000000000000000000000000000000000..2fa3883b22f616d3e0371ac9ea828399b2754c7a GIT binary patch literal 5503 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 Bh2{VN literal 0 HcmV?d00001 diff --git a/examples/assets/ipt.png b/examples/assets/ipt.png new file mode 100644 index 0000000000000000000000000000000000000000..37403e3b7b8b187facf673e7809703869bd60d12 GIT binary patch literal 428 zcmeAS@N?(olHy`uVBq!ia0y~yV7&umYj7|D$?Tlz;NI| z9Dk#O!p(Y7vFzmv&+1!F^i;o}Q{3~B5oq3nsfN#Op0C-u1;}QoNc*#P>$iJRAhylt zsUYfsZ7>^ 0 || newX < that.maxScrollX) { + newX = that.options.bounce ? that.x + (deltaX / 2) : newX >= 0 || that.maxScrollX >= 0 ? 0 : that.maxScrollX; + } + if (newY > that.minScrollY || newY < that.maxScrollY) { + newY = that.options.bounce ? that.y + (deltaY / 2) : newY >= that.minScrollY || that.maxScrollY >= 0 ? that.minScrollY : that.maxScrollY; + } + + that.distX += deltaX; + that.distY += deltaY; + that.absDistX = m.abs(that.distX); + that.absDistY = m.abs(that.distY); + + if (that.absDistX < 6 && that.absDistY < 6) { + return; + } + + // Lock direction + if (that.options.lockDirection) { + if (that.absDistX > that.absDistY + 5) { + newY = that.y; + deltaY = 0; + } else if (that.absDistY > that.absDistX + 5) { + newX = that.x; + deltaX = 0; + } + } + + that.moved = true; + + // internal for header scroll + + that._beforePos ? that._beforePos(newY, deltaY) && that._pos(newX, newY) : that._pos(newX, newY); + + that.dirX = deltaX > 0 ? -1 : deltaX < 0 ? 1 : 0; + that.dirY = deltaY > 0 ? -1 : deltaY < 0 ? 1 : 0; + + if (timestamp - that.startTime > 300) { + that.startTime = timestamp; + that.startX = that.x; + that.startY = that.y; + } + + if (that.options.onScrollMove) that.options.onScrollMove.call(that, e); + }, + + _end: function (e) { + if (hasTouch && e.touches.length !== 0) return; + + var that = this, + point = hasTouch ? e.changedTouches[0] : e, + target, ev, + momentumX = { dist:0, time:0 }, + momentumY = { dist:0, time:0 }, + duration = (e.timeStamp || Date.now()) - that.startTime, + newPosX = that.x, + newPosY = that.y, + newDuration; + + + that._unbind(MOVE_EV, window); + that._unbind(END_EV, window); + that._unbind(CANCEL_EV, window); + + if (that.options.onBeforeScrollEnd) that.options.onBeforeScrollEnd.call(that, e); + + + if (!that.moved) { + + if (hasTouch && this.options.handleClick && !that.isStopScrollAction) { + that.doubleTapTimer = setTimeout(function () { + that.doubleTapTimer = null; + + // Find the last touched element + target = point.target; + while (target.nodeType != 1) target = target.parentNode; + + if (target.tagName != 'SELECT' && target.tagName != 'INPUT' && target.tagName != 'TEXTAREA') { + ev = doc.createEvent('MouseEvents'); + ev.initMouseEvent('click', true, true, e.view, 1, + point.screenX, point.screenY, point.clientX, point.clientY, + e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, + 0, null); + ev._fake = true; + target.dispatchEvent(ev); + } + }, 0); + } + + + that._resetPos(400); + + if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e); + return; + } + + if (duration < 300 && that.options.momentum) { + momentumX = newPosX ? that._momentum(newPosX - that.startX, duration, -that.x, that.scrollerW - that.wrapperW + that.x, that.options.bounce ? that.wrapperW : 0) : momentumX; + momentumY = newPosY ? that._momentum(newPosY - that.startY, duration, -that.y, (that.maxScrollY < 0 ? that.scrollerH - that.wrapperH + that.y - that.minScrollY : 0), that.options.bounce ? that.wrapperH : 0) : momentumY; + + newPosX = that.x + momentumX.dist; + newPosY = that.y + momentumY.dist; + + if ((that.x > 0 && newPosX > 0) || (that.x < that.maxScrollX && newPosX < that.maxScrollX)) momentumX = { dist:0, time:0 }; + if ((that.y > that.minScrollY && newPosY > that.minScrollY) || (that.y < that.maxScrollY && newPosY < that.maxScrollY)) momentumY = { dist:0, time:0 }; + } + + if (momentumX.dist || momentumY.dist) { + newDuration = m.max(m.max(momentumX.time, momentumY.time), 10); + + + + that.scrollTo(m.round(newPosX), m.round(newPosY), newDuration); + + if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e); + return; + } + + + + that._resetPos(200); + if (that.options.onTouchEnd) that.options.onTouchEnd.call(that, e); + }, + + _resetPos: function (time) { + var that = this, + resetX = that.x >= 0 ? 0 : that.x < that.maxScrollX ? that.maxScrollX : that.x, + resetY = that.y >= that.minScrollY || that.maxScrollY > 0 ? that.minScrollY : that.y < that.maxScrollY ? that.maxScrollY : that.y; + + if (resetX == that.x && resetY == that.y) { + if (that.moved) { + that.moved = false; + if (that.options.onScrollEnd) that.options.onScrollEnd.call(that); // Execute custom code on scroll end + if (that._afterPos) that._afterPos(); + } + + return; + } + + that.scrollTo(resetX, resetY, time || 0); + }, + + + + _transitionEnd: function (e) { + var that = this; + + if (e.target != that.scroller) return; + + that._unbind(TRNEND_EV); + + that._startAni(); + }, + + + /** + * + * Utilities + * + */ + _startAni: function () { + var that = this, + startX = that.x, startY = that.y, + startTime = Date.now(), + step, easeOut, + animate; + + if (that.animating) return; + + if (!that.steps.length) { + that._resetPos(400); + return; + } + + step = that.steps.shift(); + + if (step.x == startX && step.y == startY) step.time = 0; + + that.animating = true; + that.moved = true; + + if (that.options.useTransition) { + that._transitionTime(step.time); + that._pos(step.x, step.y); + that.animating = false; + if (step.time) that._bind(TRNEND_EV); + else that._resetPos(0); + return; + } + + animate = function () { + var now = Date.now(), + newX, newY; + + if (now >= startTime + step.time) { + that._pos(step.x, step.y); + that.animating = false; + if (that.options.onAnimationEnd) that.options.onAnimationEnd.call(that); // Execute custom code on animation end + that._startAni(); + return; + } + + now = (now - startTime) / step.time - 1; + easeOut = m.sqrt(1 - now * now); + newX = (step.x - startX) * easeOut + startX; + newY = (step.y - startY) * easeOut + startY; + that._pos(newX, newY); + if (that.animating) that.aniTime = nextFrame(animate); + }; + + animate(); + }, + + _transitionTime: function (time) { + time += 'ms'; + this.scroller.style[transitionDuration] = time; + + }, + + _momentum: function (dist, time, maxDistUpper, maxDistLower, size) { + var deceleration = 0.0006, + speed = m.abs(dist) * (this.options.speedScale||1) / time, + newDist = (speed * speed) / (2 * deceleration), + newTime = 0, outsideDist = 0; + + // Proportinally reduce speed if we are outside of the boundaries + if (dist > 0 && newDist > maxDistUpper) { + outsideDist = size / (6 / (newDist / speed * deceleration)); + maxDistUpper = maxDistUpper + outsideDist; + speed = speed * maxDistUpper / newDist; + newDist = maxDistUpper; + } else if (dist < 0 && newDist > maxDistLower) { + outsideDist = size / (6 / (newDist / speed * deceleration)); + maxDistLower = maxDistLower + outsideDist; + speed = speed * maxDistLower / newDist; + newDist = maxDistLower; + } + + newDist = newDist * (dist < 0 ? -1 : 1); + newTime = speed / deceleration; + + return { dist: newDist, time: m.round(newTime) }; + }, + + _offset: function (el) { + var left = -el.offsetLeft, + top = -el.offsetTop; + + while (el = el.offsetParent) { + left -= el.offsetLeft; + top -= el.offsetTop; + } + + if (el != this.wrapper) { + left *= this.scale; + top *= this.scale; + } + + return { left: left, top: top }; + }, + + + + _bind: function (type, el, bubble) { + _bindArr.concat([el || this.scroller, type, this]); + (el || this.scroller).addEventListener(type, this, !!bubble); + }, + + _unbind: function (type, el, bubble) { + (el || this.scroller).removeEventListener(type, this, !!bubble); + }, + + + /** + * + * Public methods + * + */ + destroy: function () { + var that = this; + + that.scroller.style[transform] = ''; + + + + // Remove the event listeners + that._unbind(RESIZE_EV, window); + that._unbind(START_EV); + that._unbind(MOVE_EV, window); + that._unbind(END_EV, window); + that._unbind(CANCEL_EV, window); + + + + if (that.options.useTransition) that._unbind(TRNEND_EV); + + if (that.options.checkDOMChanges) clearInterval(that.checkDOMTime); + + if (that.options.onDestroy) that.options.onDestroy.call(that); + + //清除所有绑定的事件 + for (var i = 0, l = _bindArr.length; i < l;) { + _bindArr[i].removeEventListener(_bindArr[i + 1], _bindArr[i + 2]); + _bindArr[i] = null; + i = i + 3 + } + _bindArr = []; + + //干掉外边的容器内容 + /*var div = doc.createElement('div'); + div.appendChild(this.wrapper); + div.innerHTML = ''; + that.wrapper = that.scroller = div = null;*/ + }, + + refresh: function () { + var that = this, + offset; + + + + that.wrapperW = that.wrapper.clientWidth || 1; + that.wrapperH = that.wrapper.clientHeight || 1; + + that.minScrollY = -that.options.topOffset || 0; + that.scrollerW = m.round(that.scroller.offsetWidth * that.scale); + that.scrollerH = m.round((that.scroller.offsetHeight + that.minScrollY) * that.scale); + that.maxScrollX = that.wrapperW - that.scrollerW; + that.maxScrollY = that.wrapperH - that.scrollerH + that.minScrollY; + that.dirX = 0; + that.dirY = 0; + + if (that.options.onRefresh) that.options.onRefresh.call(that); + + that.hScroll = that.options.hScroll && that.maxScrollX < 0; + that.vScroll = that.options.vScroll && (!that.options.bounceLock && !that.hScroll || that.scrollerH > that.wrapperH); + + + offset = that._offset(that.wrapper); + that.wrapperOffsetLeft = -offset.left; + that.wrapperOffsetTop = -offset.top; + + + that.scroller.style[transitionDuration] = '0'; + that._resetPos(400); + }, + + scrollTo: function (x, y, time, relative) { + var that = this, + step = x, + i, l; + + that.stop(); + + if (!step.length) step = [{ x: x, y: y, time: time, relative: relative }]; + + for (i=0, l=step.length; i 0 ? 0 : pos.left < that.maxScrollX ? that.maxScrollX : pos.left; + pos.top = pos.top > that.minScrollY ? that.minScrollY : pos.top < that.maxScrollY ? that.maxScrollY : pos.top; + time = time === undefined ? m.max(m.abs(pos.left)*2, m.abs(pos.top)*2) : time; + + that.scrollTo(pos.left, pos.top, time); + }, + + scrollToPage: function (pageX, pageY, time) { + var that = this, x, y; + + time = time === undefined ? 400 : time; + + if (that.options.onScrollStart) that.options.onScrollStart.call(that); + + + x = -that.wrapperW * pageX; + y = -that.wrapperH * pageY; + if (x < that.maxScrollX) x = that.maxScrollX; + if (y < that.maxScrollY) y = that.maxScrollY; + + + that.scrollTo(x, y, time); + }, + + disable: function () { + this.stop(); + this._resetPos(0); + this.enabled = false; + + // If disabled after touchstart we make sure that there are no left over events + this._unbind(MOVE_EV, window); + this._unbind(END_EV, window); + this._unbind(CANCEL_EV, window); + }, + + enable: function () { + this.enabled = true; + }, + + stop: function () { + if (this.options.useTransition) this._unbind(TRNEND_EV); + else cancelFrame(this.aniTime); + this.steps = []; + this.moved = false; + this.animating = false; + }, + + isReady: function () { + return !this.moved && !this.animating; + } + }; + + function prefixStyle (style) { + if ( vendor === '' ) return style; + + style = style.charAt(0).toUpperCase() + style.substr(1); + return vendor + style; + } + + dummyStyle = null; // for the sake of it + + if (typeof exports !== 'undefined') exports.iScroll = iScroll; + else window.iScroll = iScroll; + + // 给$.fn上挂iScroll方法 + (function( $, ns, undefined ){ + if(!$)return; + + var _iScroll = ns.iScroll, + + slice = [].slice, + + record = (function() { + var data = {}, + id = 0, + ikey = '_sid'; // internal key. + + return function( obj, val ) { + var key = obj[ ikey ] || (obj[ ikey ] = ++id); + + val !== undefined && (data[ key ] = val); + val === null && delete data[ key ]; + + return data[ key ]; + }; + })(), + + iScroll; + + ns.iScroll = iScroll = function( el, options ){ + var args = [].slice.call( arguments, 0 ), + ins = new _iScroll( el, options ); + + record( el, ins ); + return ins; + }; + iScroll.prototype = _iScroll.prototype; + + + $.fn.iScroll = function( opts ) { + var args = slice.call( arguments, 1 ), + method = typeof opts === 'string' && opts, + ret, + obj; + + $.each( this, function( i, el ) { + + // 从缓存中取,没有则创建一个 + obj = record( el ) || iScroll( el, $.isPlainObject( opts ) ? + opts : undefined ); + + // 取实例 + if ( method === 'this' ) { + ret = obj; + return false; // 断开each循环 + } else if ( method ) { + + // 当取的方法不存在时,抛出错误信息 + if ( !$.isFunction( obj[ method ] ) ) { + throw new Error( 'iScroll没有此方法:' + method ); + } + + ret = obj[ method ].apply( obj, args ); + + // 断定它是getter性质的方法,所以需要断开each循环,把结果返回 + if ( ret !== undefined && ret !== obj ) { + return false; + } + + // ret为obj时为无效值,为了不影响后面的返回 + ret = undefined; + } + } ); + + return ret !== undefined ? ret : this; + }; + + })( window.Zepto || null, window ); +})(window, document); +/** + * Change list + * 修改记录 + * + * 1. 2012-08-14 解决滑动中按住停止滚动,松开后被点元素触发点击事件。 + * + * 具体修改: + * a. 202行 添加isStopScrollAction: false 给iScroll的原型上添加变量 + * b. 365行 _start方法里面添加that.isStopScrollAction = false; 默认让这个值为false + * c. 390行 if (x != that.x || y != that.y)条件语句里面 添加了 that.isStopScrollAction = true; 当目标值与实际值不一致,说明还在滚动动画中 + * d. 554行 that.isStopScrollAction || (that.doubleTapTimer = setTimeout(function () { + * ...... + * ...... + * }, that.options.zoom ? 250 : 0)); + * 如果isStopScrollAction为true就不派送click事件 + * + * + * 2. 2012-08-14 给options里面添加speedScale属性,提供外部控制冲量滚动速度 + * + * 具体修改 + * a. 108行 添加speedScale: 1, 给options里面添加speedScale属性,默认为1 + * b. 798行 speed = m.abs(dist) * this.options.speedScale / time, 在原来速度的基础上*speedScale来改变速度 + * + * 3. 2012-08-21 修改部分代码,给iscroll_plugin墙用的 + * + * 具体修改 + * a. 517行 在_pos之前,调用_beforePos,如果里面不返回true, 将不会调用_pos + * // internal for header scroll + * if (that._beforePos) + * that._beforePos(newY, deltaY) && that._pos(newX, newY); + * else + * that._pos(newX, newY); + * + * b. 680行 在滚动结束后调用 _afterPos. + * // internal for header scroll + * if (that._afterPos) that._afterPos(); + * + * c. 106行构造器里面添加以下代码 + * // add var to this for header scroll + * that.translateZ = translateZ; + * + * 为处理溢出 + * _bind 方法 + * destroy 方法 + * 最开头的 _bindArr = [] + * + */ +/** + * @file GMU定制版iscroll,基于[iScroll 4.2.2](http://cubiq.org/iscroll-4), 去除zoom, pc兼容,snap, scrollbar等功能。同时把iscroll扩展到了Zepto的原型中。 + * @name iScroll + * @import zepto.js + * @desc GMU定制版iscroll,基于{@link[http://cubiq.org/iscroll-4] iScroll 4.2.2}, 去除zoom, pc兼容,snap, scrollbar等功能。同时把iscroll扩展到了***Zepto***的原型中。 + */ + +/** + * @name iScroll + * @grammar new iScroll(el,[options]) ⇒ self + * @grammar $('selecotr').iScroll([options]) ⇒ zepto实例 + * @desc 将iScroll加入到了***$.fn***中,方便用Zepto的方式调用iScroll。 + * **el** + * - ***el {String/ElementNode}*** iscroll容器节点 + * + * **Options** + * - ***hScroll*** {Boolean}: (可选, 默认: true)横向是否可以滚动 + * - ***vScroll*** {Boolean}: (可选, 默认: true)竖向是否可以滚动 + * - ***momentum*** {Boolean}: (可选, 默认: true)是否带有滚动效果 + * - ***checkDOMChanges*** {Boolean, 默认: false}: (可选)每个500毫秒判断一下滚动区域的容器是否有新追加的内容,如果有就调用refresh重新渲染一次 + * - ***useTransition*** {Boolean, 默认: false}: (可选)是否使用css3来来实现动画,默认是false,建议开启 + * - ***topOffset*** {Number}: (可选, 默认: 0)可滚动区域头部缩紧多少高度,默认是0, ***主要用于头部下拉加载更多时,收起头部的提示按钮*** + * @example + * $('div').iscroll().find('selector').atrr({'name':'aaa'}) //保持链式调用 + * $('div').iScroll('refresh');//调用iScroll的方法 + * $('div').iScroll('scrollTo', 0, 0, 200);//调用iScroll的方法, 200ms内滚动到顶部 + */ + + +/** + * @name destroy + * @desc 销毁iScroll实例,在原iScroll的destroy的基础上对创建的dom元素进行了销毁 + * @grammar destroy() ⇒ undefined + */ + +/** + * @name refresh + * @desc 更新iScroll实例,在滚动的内容增减时,或者可滚动区域发生变化时需要调用***refresh***方法来纠正。 + * @grammar refresh() ⇒ undefined + */ + +/** + * @name scrollTo + * @desc 使iScroll实例,在指定时间内滚动到指定的位置, 如果relative为true, 说明x, y的值是相对与当前位置的。 + * @grammar scrollTo(x, y, time, relative) ⇒ undefined + */ +/** + * @name scrollToElement + * @desc 滚动到指定内部元素 + * @grammar scrollToElement(element, time) ⇒ undefined + * @grammar scrollToElement(selector, time) ⇒ undefined + */ +/** + * @name scrollToPage + * @desc 跟scrollTo很像,这里传入的是百分比。 + * @grammar scrollToPage(pageX, pageY, time) ⇒ undefined + */ +/** + * @name disable + * @desc 禁用iScroll + * @grammar disable() ⇒ undefined + */ +/** + * @name enable + * @desc 启用iScroll + * @grammar enable() ⇒ undefined + */ +/** + * @name stop + * @desc 定制iscroll滚动 + * @grammar stop() ⇒ undefined + */ + diff --git a/examples/assets/mobileevent2pc.js b/examples/assets/mobileevent2pc.js new file mode 100644 index 00000000..d96c2ed9 --- /dev/null +++ b/examples/assets/mobileevent2pc.js @@ -0,0 +1,140 @@ +//事件兼容pc +$.each("String Boolean RegExp Number Date Object Null Undefined".split(" "), function( i, name ){ + var fn; + + if( 'is' + name in $ ) return;//already defined then ignore. + + switch (name) { + case 'Null': + fn = function(obj){ return obj === null; }; + break; + case 'Undefined': + fn = function(obj){ return obj === undefined; }; + break; + default: + fn = function(obj){ return new RegExp(name + ']', 'i').test( toString(obj) )}; + } + $['is'+name] = fn; +}); +(function () { + var $onFn = $.fn.on, + $offFn = $.fn.off, + transEvent = { + touchstart: 'mousedown', + touchend: 'mouseup', + touchmove: 'mousemove', + tap: 'click' + }, + reversalEvent= { + mousedown: 'touchstart', + mouseup: 'touchend', + mousemove: 'touchmove', + click: 'tap' + }, + transFn = function(e) { + var events, org, event; + if($.isObject(e)){ + org = e; + $.each(e, function(key){ + event = parse(key); + !$.support.touch && transEvent[event.e] && (org[transEvent[event.e]+event.ns] = this); + }); + return org; + }else { + events = []; + $.each((e || '').split(' '), function(i, type) { + event = parse(type); + events.push(!$.support.touch && transEvent[event.e] ? transEvent[event.e]+event.ns : type); + }); + return events.join(' '); + } + }, + parse = function(event) { + var idx = event.indexOf('.'), e, ns; + if(idx>-1) { + e = event.substr(0, idx); + ns = event.substr(idx); + } else { + e = event; + ns = ''; + } + return {e:e, ns:ns}; + }, + callbackStack = []; + + $.extend($.fn, { + on: function(event, selector, callback) { + + if( Object.prototype.toString.call(selector) === '[object Function]' ) { + callback = selector; + selector = null; + } + + $.proxy(callback); + + var targetActived = false; + var transedEvent = transFn(event); + + var _callback = function(e){ + var options = e || {}; + options.changedTouches = options.changedTouches || []; + var bubbles = typeof options.bubbles != 'undefined' ? options.bubbles : true ; + var cancelable = typeof options.cancelable != 'undefined' ? options.cancelable : (event != "touchcancel"); + var view = typeof options.view != 'undefined' ? options.view : window; + var detail = typeof options.detail != 'undefined' ? options.detail : 0; + var clientX = typeof options.pageX != 'undefined' ? options.pageX : 0; + var clientY = typeof options.pageY != 'undefined' ? options.pageY : 0; + var ctrlKey = typeof options.ctrlKey != 'undefined' ? options.ctrlKey : false; + var altKey = typeof options.altKey != 'undefined' ? options.altKey : false; + var shiftKey = typeof options.shiftKey != 'undefined' ? options.shiftKey : false; + var metaKey = typeof options.metaKey != 'undefined' ? options.metaKey : false; + var scale = typeof options.scale != 'undefined' ? options.scale : 1.0; + var rotation = typeof options.rotation != 'undefined' ? options.rotation : 0.0; + var relatedTarget = typeof options.relatedTarget != 'undefined' ? options.relatedTarget : null; + var touches = []; + var targetTouches = []; + var changedTouches = []; + + var _event = document.createEvent('MouseEvents'); + _event.initMouseEvent(reversalEvent[e.type] || e.type, bubbles, cancelable, view, 1, + 0, 0, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, + touches, targetTouches, changedTouches, scale, rotation, relatedTarget); + _event.touches = [e]; + + switch( e.type ){ + case 'mousedown': + targetActived = true; + callback.call(null, _event); + break; + case 'mousemove': + if( !targetActived ) { // 如果touchstart没触发,touchmove(mousemove)应该不响应 + return; + } else { + callback.call(null, _event); + break; + } + case 'mouseup': + targetActived = false; + callback.call(null, _event); + break; + } + + }; + + callbackStack.push({ + 'target': this, + 'event': transedEvent, + 'selector': selector, + 'callback': callback, + '_callback': _callback + }); + + _callback._zid = callback._zid; + return $onFn.call(this, transedEvent, selector, _callback); + }, + off: function(event, selector, callback) { + + return $offFn.call(this, transFn(event), selector, callback); + } + }); +})(); \ No newline at end of file diff --git a/examples/assets/panel_demo.css b/examples/assets/panel_demo.css new file mode 100644 index 00000000..bdba58d6 --- /dev/null +++ b/examples/assets/panel_demo.css @@ -0,0 +1,120 @@ +#page{ + width: 100%; + -webkit-box-sizing: border-box; + position: relative; + overflow: hidden; +} +.cont{ + background: #ffffff; +} +.cont section{ + padding: 20px; +} +/*demo部分*/ +.demo h4{ + font-size: 14px; + height: 32px; + line-height: 32px; + margin-bottom: 5px; +} +.demo button, .panel button{ + height: 32px; + color: white; + font-size: 14px; + border:1px solid #cccccc; + -webkit-border-radius: 5px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#0f97bb), to(#0c607f)); + text-align: center; + cursor: pointer; + padding: 0 15px; + -webkit-tap-highlight-color: rgba(0,0,0,0); +} +.demo button:hover{ + background: -webkit-gradient(linear, left top, left bottom, from(#0c607f), to(#0f97bb)); +} +.iscroll{ + float: right; +} + +/*option展示部分*/ +.option h2, .gmu h2, .panel h2{ + font-weight: bold; + font-size: 16px; + height: 28px; + line-height: 28px; + font-family: '微软雅黑'; +} +.option .panel-des{ + font-size: 14px; + margin-bottom: 10px; + line-height: 22px; +} +.option .panel-opt, .gmu .gmu-feture{ + background: #f6feff; + border:1px solid #cccccc; + -webkit-box-shadow: 2px 2px 2px #cccccc; + -webkit-border-radius: 3px; + padding:10px; +} +.option .panel-opt li{ + font-size: 14px; + padding:10px 0; +} +.option .panel-opt .opt-name{ + font-weight: bold; +} + +/*gmu展示部分*/ +.gmu{ + clear: both; +} +.gmu .gmu-feture{ + background: #fefaf3; +} +.gmu .gmu-feture dt{ + height: 28px; + text-align: left; + font-weight: bold; + font-family: '微软雅黑'; + font-size: 16px; +} +.gmu .gmu-feture dd{ + font-size: 14px; + line-height: 24px; + margin-bottom: 10px; +} + +.panel{} +.panel button{ + background-image: -webkit-gradient(linear, left top, left bottom, from(#e8956c), to(#e25814)); +} +.panel button:hover{ + background-image: -webkit-gradient(linear, left top, left bottom, from(#e25814), to(#e8956c)); +} +.panel h2{ + color: #9dd6fe; +} +.panel .panel-des{ + color: #ffffff; + font-size: 14px; + line-height: 22px; +} +.panel .panel-dir li{ + padding:10px; +} +.panel .panel-dir a{ + text-decoration: none; + color: #ffffff; + font-size: 14px; +} +.panel .panel-dir a:hover{ + text-decoration: underline; + color: #fc5401; +} +.panel .panel-swipe, .panel .panel-opt{ + font-size: 14px; + padding: 15px; +} +.wrapper{ + opacity: 0.9; +} \ No newline at end of file From 918c7d7d7c02acb8e3e88c2ea5fca26865d4ed96 Mon Sep 17 00:00:00 2001 From: jianling Date: Mon, 16 Sep 2013 13:36:29 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=EF=BB=BF=E5=88=A0=E9=99=A4=E5=A4=9A?= =?UTF-8?q?=E4=BD=99=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test.html | 18 ------------------ 1 file changed, 18 deletions(-) delete mode 100644 test.html diff --git a/test.html b/test.html deleted file mode 100644 index 8b1867ef..00000000 --- a/test.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - GMU 定制下载 - - - - - - - - \ No newline at end of file