├── README.md ├── demo1 ├── Readme.md ├── images │ ├── arrow.png │ ├── bg.png │ ├── bg1.png │ ├── bg2.png │ ├── border-shading1.png │ ├── border-shading2.png │ ├── border.png │ ├── border1.png │ ├── border2.png │ ├── connect-linear.png │ ├── current_period.png │ ├── final-border1.png │ ├── final-border2.png │ ├── final-footer-left.png │ ├── final-footer-right.png │ ├── final-title.png │ ├── footer-left-shading.png │ ├── footer-left.png │ ├── footer-middle-shading.png │ ├── footer-right-shading.png │ ├── footer-right.png │ ├── home-head-right.png │ ├── home-right-shading.png │ ├── home-top-shading.png │ ├── home_bg.png │ ├── left-border.png │ ├── liner1.png │ ├── logo.png │ ├── middle.png │ ├── occupy-img.png │ ├── previous_period.png │ ├── right-border.png │ ├── static-border.png │ ├── static_data1.png │ ├── static_data2.png │ ├── static_data3.png │ ├── static_data4.png │ ├── static_level1.png │ ├── static_level2.png │ ├── static_level3.png │ └── title.png ├── operation-report.jpg ├── operation-report.psd ├── package-lock.json ├── package.json └── src │ ├── css │ ├── animate.min.css │ ├── index.css │ └── swiper-3.4.2.min.css │ ├── index.html │ ├── js │ ├── index.js │ ├── jquery.min.js │ ├── rem.js │ ├── swiper-3.4.2.min.js │ └── swiper.animate1.0.2.min.js │ └── mock-data │ ├── mock-server.js │ └── mock.json ├── demo2 ├── README.md ├── a.mp3 ├── css │ └── index.css ├── imgs │ ├── 4-1.png │ ├── 4-2.png │ ├── background.png │ ├── big1.png │ ├── big2.png │ ├── big3.png │ ├── big4.png │ ├── big5.png │ ├── big6.png │ ├── download.png │ ├── downloadBtn.png │ ├── gamelose.png │ ├── gamerule.png │ ├── giftbox.png │ ├── have-award.jpg │ ├── have-award1.png │ ├── index.png │ ├── inputimg.png │ ├── invite.png │ ├── jump_award.png │ ├── loading3.gif │ ├── lv1.png │ ├── lv2.png │ ├── lv3.png │ ├── no-award.png │ ├── note.png │ ├── num1.png │ ├── num2.png │ ├── num3.png │ ├── openbox.png │ ├── pass.png │ ├── restart.png │ ├── return.png │ ├── share.png │ ├── startgame.png │ ├── sure.png │ ├── titlep.png │ ├── winnbg.png │ ├── yes.png │ ├── youxishuoming1.png │ └── zhidaole.png ├── index.html └── js │ ├── index.js │ ├── jquery.min.js │ ├── loading.js │ └── rem.js ├── demo3 ├── README.md ├── css │ └── index.css ├── dist │ └── bundle.js ├── images │ ├── 200.gif │ ├── header-border.png │ ├── header_bg.png │ ├── person.png │ └── person_1.png ├── index.html ├── js │ ├── index.js │ └── rem.js ├── mock │ ├── mock.json │ ├── update.json │ └── vote.js ├── package-lock.json ├── package.json └── webpack.config.js ├── demo4 ├── .gitignore ├── README.md ├── css │ └── index.css ├── data.json ├── design.jpg ├── index.html ├── js │ └── index.js ├── package-lock.json ├── package.json └── person.js └── demo5 ├── README.md ├── css ├── font-awesome.min.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 └── index.css ├── font-awesome-4.7.0 ├── HELP-US-OUT.txt ├── css │ ├── font-awesome.css │ └── font-awesome.min.css ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── less │ ├── animated.less │ ├── bordered-pulled.less │ ├── core.less │ ├── fixed-width.less │ ├── font-awesome.less │ ├── icons.less │ ├── larger.less │ ├── list.less │ ├── mixins.less │ ├── path.less │ ├── rotated-flipped.less │ ├── screen-reader.less │ ├── stacked.less │ └── variables.less └── scss │ ├── _animated.scss │ ├── _bordered-pulled.scss │ ├── _core.scss │ ├── _fixed-width.scss │ ├── _icons.scss │ ├── _larger.scss │ ├── _list.scss │ ├── _mixins.scss │ ├── _path.scss │ ├── _rotated-flipped.scss │ ├── _screen-reader.scss │ ├── _stacked.scss │ ├── _variables.scss │ └── font-awesome.scss ├── images ├── logo.png ├── zjnews_back_icon@2x.png ├── zjnews_back_icon@3x.png ├── zjnews_phone@2x.png ├── zjnews_phone@3x.png ├── zjnews_web@2x.png └── zjnews_web@3x.png └── index.html /README.md: -------------------------------------------------------------------------------- 1 | # h5-demo 2 | this is my jobs project demo(h5 page) 3 | 4 | ### 内容 5 | 这里是一些h5活动界面的demo 6 | 7 | 每个demo都添加了演示地址,可以在demo的readme文档中看到。 8 | 9 | 同时本人会附上每次所使用的插件,希望对于学习h5技术的人有一定的帮助 10 | 11 | ### 结尾 12 | 13 | 对于你的成长的帮助,是我工作最大的动力。如果你喜欢我的项目,请给我一个star 14 | -------------------------------------------------------------------------------- /demo1/Readme.md: -------------------------------------------------------------------------------- 1 | # 这是一个运营报告类的h5界面 2 | 3 | # 所使用的插件: 4 | 5 | 1. [swiper(v3.0)](http://www.swiper.com.cn/); 6 |  插件cdn地址: 7 | 8 | ```html 9 | 10 | //swiper.min.css 11 | 12 |   13 | 14 | //animate.min.css 15 | 16 | 17 | //swiper.min.js 18 | 19 | 20 | 21 | //swiper.animate.min.js需要下载并未有cdn 22 | ``` 23 | 2. jquery 24 | 3. 后台使用了mock数据: [mock数据](http://www.lhbzimo.cn:5000) 25 | 26 | demo演示地址: 27 | 28 | **[demo地址](http://www.lhbzimo.cn/operation-report/src/index.html)** 29 | 30 | 二维码: 31 | 32 | ![image](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/demo1.png) 33 | 34 | 效果图: 35 | 36 | ![界面](http://oifsv5iji.bkt.clouddn.com/716DD6C6-C116-4228-B93E-CE6C3F07F824.png) 37 | -------------------------------------------------------------------------------- /demo1/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/arrow.png -------------------------------------------------------------------------------- /demo1/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/bg.png -------------------------------------------------------------------------------- /demo1/images/bg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/bg1.png -------------------------------------------------------------------------------- /demo1/images/bg2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/bg2.png -------------------------------------------------------------------------------- /demo1/images/border-shading1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/border-shading1.png -------------------------------------------------------------------------------- /demo1/images/border-shading2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/border-shading2.png -------------------------------------------------------------------------------- /demo1/images/border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/border.png -------------------------------------------------------------------------------- /demo1/images/border1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/border1.png -------------------------------------------------------------------------------- /demo1/images/border2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/border2.png -------------------------------------------------------------------------------- /demo1/images/connect-linear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/connect-linear.png -------------------------------------------------------------------------------- /demo1/images/current_period.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/current_period.png -------------------------------------------------------------------------------- /demo1/images/final-border1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/final-border1.png -------------------------------------------------------------------------------- /demo1/images/final-border2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/final-border2.png -------------------------------------------------------------------------------- /demo1/images/final-footer-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/final-footer-left.png -------------------------------------------------------------------------------- /demo1/images/final-footer-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/final-footer-right.png -------------------------------------------------------------------------------- /demo1/images/final-title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/final-title.png -------------------------------------------------------------------------------- /demo1/images/footer-left-shading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/footer-left-shading.png -------------------------------------------------------------------------------- /demo1/images/footer-left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/footer-left.png -------------------------------------------------------------------------------- /demo1/images/footer-middle-shading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/footer-middle-shading.png -------------------------------------------------------------------------------- /demo1/images/footer-right-shading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/footer-right-shading.png -------------------------------------------------------------------------------- /demo1/images/footer-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/footer-right.png -------------------------------------------------------------------------------- /demo1/images/home-head-right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/home-head-right.png -------------------------------------------------------------------------------- /demo1/images/home-right-shading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/home-right-shading.png -------------------------------------------------------------------------------- /demo1/images/home-top-shading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/home-top-shading.png -------------------------------------------------------------------------------- /demo1/images/home_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/home_bg.png -------------------------------------------------------------------------------- /demo1/images/left-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/left-border.png -------------------------------------------------------------------------------- /demo1/images/liner1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/liner1.png -------------------------------------------------------------------------------- /demo1/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/logo.png -------------------------------------------------------------------------------- /demo1/images/middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/middle.png -------------------------------------------------------------------------------- /demo1/images/occupy-img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/occupy-img.png -------------------------------------------------------------------------------- /demo1/images/previous_period.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/previous_period.png -------------------------------------------------------------------------------- /demo1/images/right-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/right-border.png -------------------------------------------------------------------------------- /demo1/images/static-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static-border.png -------------------------------------------------------------------------------- /demo1/images/static_data1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_data1.png -------------------------------------------------------------------------------- /demo1/images/static_data2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_data2.png -------------------------------------------------------------------------------- /demo1/images/static_data3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_data3.png -------------------------------------------------------------------------------- /demo1/images/static_data4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_data4.png -------------------------------------------------------------------------------- /demo1/images/static_level1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_level1.png -------------------------------------------------------------------------------- /demo1/images/static_level2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_level2.png -------------------------------------------------------------------------------- /demo1/images/static_level3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/static_level3.png -------------------------------------------------------------------------------- /demo1/images/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/images/title.png -------------------------------------------------------------------------------- /demo1/operation-report.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/operation-report.jpg -------------------------------------------------------------------------------- /demo1/operation-report.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo1/operation-report.psd -------------------------------------------------------------------------------- /demo1/package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "operation-report", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "accepts": { 8 | "version": "1.3.3", 9 | "resolved": "http://registry.npm.taobao.org/accepts/download/accepts-1.3.3.tgz", 10 | "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", 11 | "requires": { 12 | "mime-types": "2.1.16", 13 | "negotiator": "0.6.1" 14 | } 15 | }, 16 | "any-promise": { 17 | "version": "1.3.0", 18 | "resolved": "http://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", 19 | "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=" 20 | }, 21 | "array-flatten": { 22 | "version": "1.1.1", 23 | "resolved": "http://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz", 24 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" 25 | }, 26 | "co": { 27 | "version": "4.6.0", 28 | "resolved": "http://registry.npm.taobao.org/co/download/co-4.6.0.tgz", 29 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" 30 | }, 31 | "content-disposition": { 32 | "version": "0.5.2", 33 | "resolved": "http://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.2.tgz", 34 | "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" 35 | }, 36 | "content-type": { 37 | "version": "1.0.2", 38 | "resolved": "http://registry.npm.taobao.org/content-type/download/content-type-1.0.2.tgz", 39 | "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=" 40 | }, 41 | "cookie": { 42 | "version": "0.3.1", 43 | "resolved": "http://registry.npm.taobao.org/cookie/download/cookie-0.3.1.tgz", 44 | "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=" 45 | }, 46 | "cookie-signature": { 47 | "version": "1.0.6", 48 | "resolved": "http://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", 49 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" 50 | }, 51 | "cookies": { 52 | "version": "0.7.0", 53 | "resolved": "http://registry.npm.taobao.org/cookies/download/cookies-0.7.0.tgz", 54 | "integrity": "sha1-C8lh2RDDUlSYD8fJ7/XaEgEbvwA=", 55 | "requires": { 56 | "depd": "1.1.1", 57 | "keygrip": "1.0.1" 58 | } 59 | }, 60 | "debug": { 61 | "version": "3.0.0", 62 | "resolved": "http://registry.npm.taobao.org/debug/download/debug-3.0.0.tgz", 63 | "integrity": "sha1-HS/q5TNJBHsIsmTsQZBroXqFFuQ=", 64 | "requires": { 65 | "ms": "2.0.0" 66 | } 67 | }, 68 | "deep-equal": { 69 | "version": "1.0.1", 70 | "resolved": "http://registry.npm.taobao.org/deep-equal/download/deep-equal-1.0.1.tgz", 71 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" 72 | }, 73 | "delegates": { 74 | "version": "1.0.0", 75 | "resolved": "http://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz", 76 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 77 | }, 78 | "depd": { 79 | "version": "1.1.1", 80 | "resolved": "http://registry.npm.taobao.org/depd/download/depd-1.1.1.tgz", 81 | "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=" 82 | }, 83 | "destroy": { 84 | "version": "1.0.4", 85 | "resolved": "http://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", 86 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 87 | }, 88 | "ee-first": { 89 | "version": "1.1.1", 90 | "resolved": "http://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", 91 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 92 | }, 93 | "encodeurl": { 94 | "version": "1.0.1", 95 | "resolved": "http://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.1.tgz", 96 | "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=" 97 | }, 98 | "error-inject": { 99 | "version": "1.0.0", 100 | "resolved": "http://registry.npm.taobao.org/error-inject/download/error-inject-1.0.0.tgz", 101 | "integrity": "sha1-4rPZG1Su1nLzCdlQ0VSFD6EdTzc=" 102 | }, 103 | "escape-html": { 104 | "version": "1.0.3", 105 | "resolved": "http://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", 106 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" 107 | }, 108 | "etag": { 109 | "version": "1.8.0", 110 | "resolved": "http://registry.npm.taobao.org/etag/download/etag-1.8.0.tgz", 111 | "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=" 112 | }, 113 | "express": { 114 | "version": "4.15.4", 115 | "resolved": "http://registry.npm.taobao.org/express/download/express-4.15.4.tgz", 116 | "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", 117 | "requires": { 118 | "accepts": "1.3.3", 119 | "array-flatten": "1.1.1", 120 | "content-disposition": "0.5.2", 121 | "content-type": "1.0.2", 122 | "cookie": "0.3.1", 123 | "cookie-signature": "1.0.6", 124 | "debug": "3.0.0", 125 | "depd": "1.1.1", 126 | "encodeurl": "1.0.1", 127 | "escape-html": "1.0.3", 128 | "etag": "1.8.0", 129 | "finalhandler": "1.0.4", 130 | "fresh": "0.5.0", 131 | "merge-descriptors": "1.0.1", 132 | "methods": "1.1.2", 133 | "on-finished": "2.3.0", 134 | "parseurl": "1.3.1", 135 | "path-to-regexp": "1.7.0", 136 | "proxy-addr": "1.1.5", 137 | "qs": "6.5.0", 138 | "range-parser": "1.2.0", 139 | "send": "0.15.4", 140 | "serve-static": "1.12.4", 141 | "setprototypeof": "1.0.3", 142 | "statuses": "1.3.1", 143 | "type-is": "1.6.15", 144 | "utils-merge": "1.0.0", 145 | "vary": "1.1.1" 146 | } 147 | }, 148 | "finalhandler": { 149 | "version": "1.0.4", 150 | "resolved": "http://registry.npm.taobao.org/finalhandler/download/finalhandler-1.0.4.tgz", 151 | "integrity": "sha1-GFdPLnxLmLiuOyMMIfIB8xvbP7c=", 152 | "requires": { 153 | "debug": "3.0.0", 154 | "encodeurl": "1.0.1", 155 | "escape-html": "1.0.3", 156 | "on-finished": "2.3.0", 157 | "parseurl": "1.3.1", 158 | "statuses": "1.3.1", 159 | "unpipe": "1.0.0" 160 | } 161 | }, 162 | "forwarded": { 163 | "version": "0.1.0", 164 | "resolved": "http://registry.npm.taobao.org/forwarded/download/forwarded-0.1.0.tgz", 165 | "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=" 166 | }, 167 | "fresh": { 168 | "version": "0.5.0", 169 | "resolved": "http://registry.npm.taobao.org/fresh/download/fresh-0.5.0.tgz", 170 | "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=" 171 | }, 172 | "http-assert": { 173 | "version": "1.3.0", 174 | "resolved": "http://registry.npm.taobao.org/http-assert/download/http-assert-1.3.0.tgz", 175 | "integrity": "sha1-oxpc+IyHPsu1eWkH1NbxMujAHko=", 176 | "requires": { 177 | "deep-equal": "1.0.1", 178 | "http-errors": "1.6.2" 179 | } 180 | }, 181 | "http-errors": { 182 | "version": "1.6.2", 183 | "resolved": "http://registry.npm.taobao.org/http-errors/download/http-errors-1.6.2.tgz", 184 | "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", 185 | "requires": { 186 | "depd": "1.1.1", 187 | "inherits": "2.0.3", 188 | "setprototypeof": "1.0.3", 189 | "statuses": "1.3.1" 190 | } 191 | }, 192 | "inherits": { 193 | "version": "2.0.3", 194 | "resolved": "http://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", 195 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 196 | }, 197 | "ipaddr.js": { 198 | "version": "1.4.0", 199 | "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.4.0.tgz", 200 | "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=" 201 | }, 202 | "is-generator-function": { 203 | "version": "1.0.6", 204 | "resolved": "http://registry.npm.taobao.org/is-generator-function/download/is-generator-function-1.0.6.tgz", 205 | "integrity": "sha1-nnFlPNFf/zQcecQVFGChMdMen8Q=" 206 | }, 207 | "isarray": { 208 | "version": "0.0.1", 209 | "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", 210 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 211 | }, 212 | "keygrip": { 213 | "version": "1.0.1", 214 | "resolved": "http://registry.npm.taobao.org/keygrip/download/keygrip-1.0.1.tgz", 215 | "integrity": "sha1-sC+kgW7vIajEs1yp5Skh/8iaMOk=" 216 | }, 217 | "koa": { 218 | "version": "2.3.0", 219 | "resolved": "http://registry.npm.taobao.org/koa/download/koa-2.3.0.tgz", 220 | "integrity": "sha1-nh6OTaQBg5xXuFJ+rcV/dhJ1Vac=", 221 | "requires": { 222 | "accepts": "1.3.3", 223 | "content-disposition": "0.5.2", 224 | "content-type": "1.0.2", 225 | "cookies": "0.7.0", 226 | "debug": "3.0.0", 227 | "delegates": "1.0.0", 228 | "depd": "1.1.1", 229 | "destroy": "1.0.4", 230 | "error-inject": "1.0.0", 231 | "escape-html": "1.0.3", 232 | "fresh": "0.5.0", 233 | "http-assert": "1.3.0", 234 | "http-errors": "1.6.2", 235 | "is-generator-function": "1.0.6", 236 | "koa-compose": "4.0.0", 237 | "koa-convert": "1.2.0", 238 | "koa-is-json": "1.0.0", 239 | "mime-types": "2.1.16", 240 | "on-finished": "2.3.0", 241 | "only": "0.0.2", 242 | "parseurl": "1.3.1", 243 | "statuses": "1.3.1", 244 | "type-is": "1.6.15", 245 | "vary": "1.1.1" 246 | } 247 | }, 248 | "koa-compose": { 249 | "version": "4.0.0", 250 | "resolved": "http://registry.npm.taobao.org/koa-compose/download/koa-compose-4.0.0.tgz", 251 | "integrity": "sha1-KAClE9nDYe8NY4UrA45Pby1adzw=" 252 | }, 253 | "koa-convert": { 254 | "version": "1.2.0", 255 | "resolved": "http://registry.npm.taobao.org/koa-convert/download/koa-convert-1.2.0.tgz", 256 | "integrity": "sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA=", 257 | "requires": { 258 | "co": "4.6.0", 259 | "koa-compose": "3.2.1" 260 | }, 261 | "dependencies": { 262 | "koa-compose": { 263 | "version": "3.2.1", 264 | "resolved": "http://registry.npm.taobao.org/koa-compose/download/koa-compose-3.2.1.tgz", 265 | "integrity": "sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec=", 266 | "requires": { 267 | "any-promise": "1.3.0" 268 | } 269 | } 270 | } 271 | }, 272 | "koa-is-json": { 273 | "version": "1.0.0", 274 | "resolved": "http://registry.npm.taobao.org/koa-is-json/download/koa-is-json-1.0.0.tgz", 275 | "integrity": "sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=" 276 | }, 277 | "koa-route": { 278 | "version": "3.2.0", 279 | "resolved": "http://registry.npm.taobao.org/koa-route/download/koa-route-3.2.0.tgz", 280 | "integrity": "sha1-dimLmaa8+p44yrb+XHmocz51i84=", 281 | "requires": { 282 | "debug": "3.0.0", 283 | "methods": "1.1.2", 284 | "path-to-regexp": "1.7.0" 285 | } 286 | }, 287 | "media-typer": { 288 | "version": "0.3.0", 289 | "resolved": "http://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", 290 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 291 | }, 292 | "merge-descriptors": { 293 | "version": "1.0.1", 294 | "resolved": "http://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", 295 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" 296 | }, 297 | "methods": { 298 | "version": "1.1.2", 299 | "resolved": "http://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", 300 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" 301 | }, 302 | "mime": { 303 | "version": "1.3.4", 304 | "resolved": "http://registry.npm.taobao.org/mime/download/mime-1.3.4.tgz", 305 | "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=" 306 | }, 307 | "mime-db": { 308 | "version": "1.29.0", 309 | "resolved": "http://registry.npm.taobao.org/mime-db/download/mime-db-1.29.0.tgz", 310 | "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" 311 | }, 312 | "mime-types": { 313 | "version": "2.1.16", 314 | "resolved": "http://registry.npm.taobao.org/mime-types/download/mime-types-2.1.16.tgz", 315 | "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", 316 | "requires": { 317 | "mime-db": "1.29.0" 318 | } 319 | }, 320 | "ms": { 321 | "version": "2.0.0", 322 | "resolved": "http://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", 323 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 324 | }, 325 | "negotiator": { 326 | "version": "0.6.1", 327 | "resolved": "http://registry.npm.taobao.org/negotiator/download/negotiator-0.6.1.tgz", 328 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=" 329 | }, 330 | "on-finished": { 331 | "version": "2.3.0", 332 | "resolved": "http://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", 333 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", 334 | "requires": { 335 | "ee-first": "1.1.1" 336 | } 337 | }, 338 | "only": { 339 | "version": "0.0.2", 340 | "resolved": "http://registry.npm.taobao.org/only/download/only-0.0.2.tgz", 341 | "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=" 342 | }, 343 | "parseurl": { 344 | "version": "1.3.1", 345 | "resolved": "http://registry.npm.taobao.org/parseurl/download/parseurl-1.3.1.tgz", 346 | "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=" 347 | }, 348 | "path-to-regexp": { 349 | "version": "1.7.0", 350 | "resolved": "http://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-1.7.0.tgz", 351 | "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", 352 | "requires": { 353 | "isarray": "0.0.1" 354 | } 355 | }, 356 | "proxy-addr": { 357 | "version": "1.1.5", 358 | "resolved": "http://registry.npm.taobao.org/proxy-addr/download/proxy-addr-1.1.5.tgz", 359 | "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", 360 | "requires": { 361 | "forwarded": "0.1.0", 362 | "ipaddr.js": "1.4.0" 363 | } 364 | }, 365 | "qs": { 366 | "version": "6.5.0", 367 | "resolved": "http://registry.npm.taobao.org/qs/download/qs-6.5.0.tgz", 368 | "integrity": "sha1-jQSVTTZN7z78VbWgeT4eLIsebkk=" 369 | }, 370 | "range-parser": { 371 | "version": "1.2.0", 372 | "resolved": "http://registry.npm.taobao.org/range-parser/download/range-parser-1.2.0.tgz", 373 | "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=" 374 | }, 375 | "send": { 376 | "version": "0.15.4", 377 | "resolved": "http://registry.npm.taobao.org/send/download/send-0.15.4.tgz", 378 | "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", 379 | "requires": { 380 | "debug": "3.0.0", 381 | "depd": "1.1.1", 382 | "destroy": "1.0.4", 383 | "encodeurl": "1.0.1", 384 | "escape-html": "1.0.3", 385 | "etag": "1.8.0", 386 | "fresh": "0.5.0", 387 | "http-errors": "1.6.2", 388 | "mime": "1.3.4", 389 | "ms": "2.0.0", 390 | "on-finished": "2.3.0", 391 | "range-parser": "1.2.0", 392 | "statuses": "1.3.1" 393 | } 394 | }, 395 | "serve-static": { 396 | "version": "1.12.4", 397 | "resolved": "http://registry.npm.taobao.org/serve-static/download/serve-static-1.12.4.tgz", 398 | "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", 399 | "requires": { 400 | "encodeurl": "1.0.1", 401 | "escape-html": "1.0.3", 402 | "parseurl": "1.3.1", 403 | "send": "0.15.4" 404 | } 405 | }, 406 | "setprototypeof": { 407 | "version": "1.0.3", 408 | "resolved": "http://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.0.3.tgz", 409 | "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=" 410 | }, 411 | "statuses": { 412 | "version": "1.3.1", 413 | "resolved": "http://registry.npm.taobao.org/statuses/download/statuses-1.3.1.tgz", 414 | "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=" 415 | }, 416 | "type-is": { 417 | "version": "1.6.15", 418 | "resolved": "http://registry.npm.taobao.org/type-is/download/type-is-1.6.15.tgz", 419 | "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", 420 | "requires": { 421 | "media-typer": "0.3.0", 422 | "mime-types": "2.1.16" 423 | } 424 | }, 425 | "unpipe": { 426 | "version": "1.0.0", 427 | "resolved": "http://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", 428 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" 429 | }, 430 | "utils-merge": { 431 | "version": "1.0.0", 432 | "resolved": "http://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.0.tgz", 433 | "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=" 434 | }, 435 | "vary": { 436 | "version": "1.1.1", 437 | "resolved": "http://registry.npm.taobao.org/vary/download/vary-1.1.1.tgz", 438 | "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=" 439 | } 440 | } 441 | } 442 | -------------------------------------------------------------------------------- /demo1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "operation-report", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node ./src/mock-data/mock-server.js" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "express": "^4.15.4", 15 | "koa": "^2.3.0", 16 | "koa-route": "^3.2.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /demo1/src/css/index.css: -------------------------------------------------------------------------------- 1 | html, body { 2 | position: relative; 3 | height: 100%; 4 | } 5 | body { 6 | background: #eee; 7 | font-family: Helvetica Neue, Helvetica, Arial, sans-serif; 8 | font-size: 14px; 9 | color:#000; 10 | margin: 0; 11 | padding: 0; 12 | } 13 | .swiper-container { 14 | width: 100%; 15 | height: 100%; 16 | } 17 | .swiper-slide { 18 | font-size: 14px; 19 | background: #fff; 20 | color: #4afdbe; 21 | } 22 | 23 | .bground{ 24 | background-image: url('../../images/bg.png'); 25 | background-size: 100% 100%; 26 | } 27 | 28 | .arrow{ 29 | position: absolute; 30 | bottom: .4rem; 31 | width: .54rem; 32 | height: .88rem; 33 | margin-left: -.27rem; 34 | left: 50%; 35 | z-index: 2; 36 | background-image: url('../../images/arrow.png'); 37 | background-size: 100% 100%; 38 | } 39 | 40 | .bground header{ 41 | width: 100%; 42 | position: relative; 43 | padding-top: .45rem; 44 | } 45 | 46 | .bground header .title{ 47 | margin-left: .35rem; 48 | font-size: 24px; 49 | height: .55rem; 50 | line-height: .55rem; 51 | color: #4afdbe; 52 | text-align: left; 53 | } 54 | 55 | .bground footer .footer-left{ 56 | float: left; 57 | margin-top: .4rem; 58 | width: 2.34rem; 59 | height: .4rem; 60 | background-image: url('../../images/footer-left.png'); 61 | background-size: 100% 100%; 62 | } 63 | 64 | .bground footer .footer-right{ 65 | float: right; 66 | margin-top: .2rem; 67 | width: 2.24rem; 68 | height: .35rem; 69 | background-image: url('../../images/footer-right.png'); 70 | background-size: 100% 100%; 71 | } 72 | 73 | 74 | 75 | /* home part */ 76 | 77 | .home { 78 | width: 100%; 79 | height: 100%; 80 | padding-top: .01rem; 81 | } 82 | 83 | .home header{ 84 | width: 100%; 85 | height: auto; 86 | overflow: hidden; 87 | position: relative; 88 | padding-top: 0; 89 | } 90 | 91 | .home header::after{ 92 | content: ''; 93 | display: block; 94 | clear: both; 95 | } 96 | 97 | .home header .top-left-shading{ 98 | float: left; 99 | width: 3.12rem; 100 | height: 2.11rem; 101 | background-image: url('../../images/home-top-shading.png'); 102 | background-size: 100% 100%; 103 | } 104 | 105 | .home header .top-right-shading{ 106 | float: right; 107 | position: absolute; 108 | bottom: 0; 109 | right: .24rem; 110 | width: 1.22rem; 111 | height: 1.22rem; 112 | background-image: url('../../images/home-head-right.png'); 113 | background-size: 100% 100%; 114 | } 115 | 116 | .home .middle{ 117 | width: 100%; 118 | padding-top: .29rem; 119 | height: auto; 120 | position: relative; 121 | overflow: hidden; 122 | } 123 | 124 | .home .middle .content-top{ 125 | width: 100%; 126 | height: .45rem; 127 | position: relative; 128 | } 129 | 130 | .home .middle .content-top .logo{ 131 | float: left; 132 | margin-top: .1rem; 133 | margin-left: 1.17rem; 134 | width: 2.34rem; 135 | height: 0.34rem; 136 | background-image: url('../../images/logo.png'); 137 | background-size: 100% 100%; 138 | } 139 | 140 | .home .middle .content-top .middle-shading{ 141 | width: 1.9rem; 142 | height: .45rem; 143 | float: right; 144 | background-image: url('../../images/home-right-shading.png'); 145 | background-size: 100% 100%; 146 | } 147 | 148 | .home .middle .title{ 149 | width: 4.57rem; 150 | height: 1.18rem; 151 | margin-top: .1rem; 152 | margin-left: 1.01rem; 153 | background-image: url('../../images/title.png'); 154 | background-size: 100% 100%; 155 | } 156 | 157 | .home .middle .time{ 158 | width: 100%; 159 | height: auto; 160 | padding-top: .27rem; 161 | position: relative; 162 | } 163 | 164 | .home .middle .time::after{ 165 | content: ""; 166 | display: block; 167 | clear: both; 168 | } 169 | 170 | .home .middle .time .left-border{ 171 | background-image: url('../../images/left-border.png'); 172 | background-size: 100% 100%; 173 | width: 2.82rem; 174 | height: .98rem; 175 | float: left; 176 | } 177 | 178 | .home .middle .time .middle-border{ 179 | position: absolute; 180 | top: .47rem; 181 | left: .8rem; 182 | width: 5.08rem; 183 | height: .63rem; 184 | background-image: url('../../images/border.png'); 185 | background-size: 100% 100%; 186 | text-align: center; 187 | line-height: .63rem; 188 | color: #4afdbe; 189 | } 190 | 191 | .home .middle .time .right-border{ 192 | float: right; 193 | margin-top: .28rem; 194 | width: 1.72rem; 195 | height: 1.12rem; 196 | background-image: url('../../images/right-border.png'); 197 | background-size: 100% 100%; 198 | } 199 | 200 | .home footer{ 201 | width: 100%; 202 | height: 100%; 203 | position: relative; 204 | } 205 | 206 | .home footer .footer-left-shading{ 207 | width: .61rem; 208 | height: 2.99rem; 209 | float: left; 210 | margin-left: .56rem; 211 | margin-top: .6rem; 212 | background-image: url('../../images/footer-left-shading.png'); 213 | background-size: 100% 100%; 214 | } 215 | 216 | .home footer .footer-middle-shading{ 217 | margin-left: .2rem; 218 | margin-top: -.31rem; 219 | width: 1.4rem; 220 | height: 4.57rem; 221 | float: left; 222 | background-image: url('../../images/footer-middle-shading.png'); 223 | background-size: 100% 100%; 224 | } 225 | 226 | .home footer .footer-right-shading{ 227 | width: 3.33rem; 228 | height: 3.49rem; 229 | float: right; 230 | margin-top: .78rem; 231 | background-image: url('../../images/footer-right-shading.png'); 232 | background-size: 100% 100%; 233 | } 234 | 235 | 236 | 237 | /* traffic static part */ 238 | 239 | .traffic-static{ 240 | width: 100%; 241 | height: 100%; 242 | position: relative; 243 | } 244 | 245 | .traffic-static header{ 246 | width: 100%; 247 | padding-top: .6rem; 248 | } 249 | 250 | .traffic-static header .title{ 251 | width: 3.75rem; 252 | height: 1.2rem; 253 | margin-left: .6rem; 254 | } 255 | 256 | .traffic-static header .title p{ 257 | margin: 0; 258 | font-size: 14px; 259 | text-align: left; 260 | color: #ceffe3; 261 | line-height: .4rem; 262 | } 263 | 264 | .traffic-static .middle{ 265 | width: 5.99rem; 266 | height: 6.2rem; 267 | margin: .7rem auto 0; 268 | background-image: url('../../images/static-border.png'); 269 | background-size: 100% 100%; 270 | position: relative; 271 | } 272 | 273 | .traffic-static .middle .number{ 274 | width: 100%; 275 | margin-left: .24rem; 276 | } 277 | 278 | .traffic-static .middle .number span:first-child{ 279 | font-size: 24px; 280 | } 281 | 282 | .traffic-static .middle .number span:last-child{ 283 | font-size: 14px; 284 | color: #ceffe3; 285 | } 286 | 287 | .traffic-static .middle .static-content{ 288 | width: 100%; 289 | display: flex; 290 | } 291 | 292 | .traffic-static .middle .static-content .static-level{ 293 | margin-left: .56rem; 294 | width: .46rem; 295 | } 296 | 297 | .traffic-static .middle .static-content .static-level .static-level1{ 298 | width: .46rem; 299 | height: .46rem; 300 | margin-top: .9rem; 301 | background-image: url('../../images/static_level1.png'); 302 | background-size: 100% 100%; 303 | } 304 | 305 | .traffic-static .middle .static-content .static-level .static-level2{ 306 | width: .46rem; 307 | height: .46rem; 308 | margin-top: .9rem; 309 | background-image: url('../../images/static_level2.png'); 310 | background-size: 100% 100%; 311 | } 312 | 313 | .traffic-static .middle .static-content .static-level .static-level3{ 314 | width: .46rem; 315 | height: .46rem; 316 | margin-top: .5rem; 317 | background-image: url('../../images/static_level3.png'); 318 | background-size: 100% 100%; 319 | } 320 | 321 | .traffic-static .middle .static-content .static-period{ 322 | margin-left: .15rem; 323 | flex: 0 0 1.6rem; 324 | position: relative; 325 | overflow: hidden; 326 | height: 5.6rem; 327 | margin-right: .15rem; 328 | } 329 | 330 | 331 | .traffic-static .middle .static-content .static-period .static-proccess{ 332 | width: 100%; 333 | display: flex; 334 | align-items: flex-end; 335 | position: absolute; 336 | bottom: 1.1rem; 337 | } 338 | 339 | .static-content .static-period .static-proccess .proccess-content{ 340 | width: .76rem; 341 | } 342 | 343 | .static-content .static-period .static-proccess .proccess-content:nth-child(2n){ 344 | margin-left: .04rem; 345 | } 346 | 347 | .static-content .static-period .static-proccess .proccess-content .number{ 348 | font-size: 12px; 349 | text-align: center; 350 | margin: 0; 351 | } 352 | 353 | .proccess-content .block{ 354 | width: .76rem; 355 | height: .09rem; 356 | background: #4afdbe; 357 | margin-top: .02rem; 358 | margin-bottom: .02rem; 359 | } 360 | 361 | .static-content .previous-period{ 362 | width: 1.22rem; 363 | height: .34rem; 364 | background-image: url('../../images/previous_period.png'); 365 | background-size: 100% 100%; 366 | position: absolute; 367 | left: 50%; 368 | margin-left: -.61rem; 369 | bottom: .65rem; 370 | } 371 | 372 | .static-content .current-period{ 373 | width: 1.22rem; 374 | height: .34rem; 375 | background-image: url('../../images/current_period.png'); 376 | background-size: 100% 100%; 377 | position: absolute; 378 | left: 50%; 379 | margin-left: -.61rem; 380 | bottom: .65rem; 381 | } 382 | 383 | .traffic-static .middle .static-content .final-part{ 384 | width: 100%; 385 | padding: .5rem .2rem; 386 | box-sizing: border-box; 387 | } 388 | 389 | .traffic-static .middle .static-content .final-part .daily-static{ 390 | font-size: 14px; 391 | text-align: center; 392 | color: #ceffe3; 393 | margin-top: 2.3rem; 394 | padding-left: .05rem; 395 | width: .6rem; 396 | margin-left: .15rem; 397 | } 398 | 399 | 400 | /* Top 10 */ 401 | 402 | .popularity-part{ 403 | width: 100%; 404 | height: 100%; 405 | position: relative; 406 | } 407 | 408 | .popularity-part .middle{ 409 | width: 100%; 410 | position: relative; 411 | overflow: hidden; 412 | } 413 | 414 | .popularity-part .middle .middle-content{ 415 | width: 100%; 416 | position: relative; 417 | list-style: none; 418 | padding: 0 .35rem; 419 | box-sizing: border-box; 420 | margin: 0; 421 | } 422 | 423 | .popularity-part .middle .middle-content .activity{ 424 | width: 100%; 425 | background-image: url('../../images/border1.png'); 426 | height: 1.5rem; 427 | background-size: 100% 100%; 428 | margin-bottom: .05rem; 429 | padding: .35rem .4rem; 430 | box-sizing: border-box; 431 | text-align: left; 432 | } 433 | 434 | .popularity-part .middle .activity .content{ 435 | display: inline-block; 436 | width: 3.45rem; 437 | height: 100%; 438 | vertical-align: top; 439 | } 440 | 441 | .popularity-part .middle .activity .content p{ 442 | height: .5rem; 443 | color: #4afdbe; 444 | font-size: 14px; 445 | margin: 0; 446 | } 447 | 448 | .popularity-part .middle .activity .line{ 449 | margin-left: .05rem; 450 | margin-right: .1rem; 451 | height: 100%; 452 | display: inline-block; 453 | width: 1px; 454 | background-color: #4afdbe; 455 | vertical-align: top; 456 | } 457 | 458 | .popularity-part .middle .activity .number{ 459 | display: inline-block; 460 | height: 100%; 461 | vertical-align: top; 462 | } 463 | 464 | .popularity-part .middle .activity .number p{ 465 | height: .5rem; 466 | color: #4afdbe; 467 | font-size: 14px; 468 | margin: 0; 469 | } 470 | 471 | 472 | 473 | /* hot activity part */ 474 | 475 | .hot-activity{ 476 | width: 100%; 477 | height: 100%; 478 | position: relative; 479 | } 480 | 481 | .hot-activity .middle{ 482 | width: 100%; 483 | overflow: hidden; 484 | position: relative; 485 | padding: .24rem .35rem; 486 | box-sizing: border-box; 487 | } 488 | 489 | .hot-activity .middle .activity-title{ 490 | font-size: 14px; 491 | color: #4afdbe; 492 | } 493 | 494 | .hot-activity .middle ul{ 495 | list-style: none; 496 | margin: 0; 497 | padding: 0; 498 | padding-top: .3rem; 499 | } 500 | 501 | .hot-activity .middle ul li{ 502 | display: inline-block; 503 | width: 2.55rem; 504 | height: 3.4rem; 505 | border: 1px solid #4afdbe; 506 | border-radius: 5%; 507 | } 508 | 509 | 510 | .hot-activity .middle ul li:last-child{ 511 | margin-left: .3rem; 512 | } 513 | 514 | .hot-activity .middle ul li img{ 515 | width: 100%; 516 | height: 100%; 517 | } 518 | 519 | .hot-activity .middle .introduction{ 520 | margin-top: .45rem; 521 | font-size: 14px; 522 | color: #4afdbe; 523 | } 524 | 525 | .fen-rank{ 526 | width: 100%; 527 | height: 100%; 528 | position: relative; 529 | } 530 | 531 | .fen-rank .middle{ 532 | width: 100%; 533 | overflow: hidden; 534 | padding: .5rem .35rem 0; 535 | display: flex; 536 | box-sizing: border-box; 537 | } 538 | 539 | .fen-rank .middle .serial{ 540 | margin-right: .1rem; 541 | text-align: center 542 | } 543 | 544 | .fen-rank .middle .gongzonghao{ 545 | flex: 0 0 2.73rem; 546 | margin-right: .1rem; 547 | text-align: center 548 | } 549 | 550 | .fen-rank .middle .increase{ 551 | flex: 1; 552 | text-align: center; 553 | } 554 | 555 | .fen-rank .middle .rank-group .title{ 556 | font-size: 14px; 557 | color: #4afdbe; 558 | } 559 | 560 | .fen-rank .middle .rank-group ul{ 561 | list-style: none; 562 | border: 1px solid #4afdbe; 563 | width: 100%; 564 | padding: 0; 565 | margin-top: .35rem; 566 | } 567 | 568 | 569 | .fen-rank .middle .rank-group .serial-number li{ 570 | width: .35rem; 571 | margin: .15rem; 572 | border: 1px solid #4afdbe; 573 | text-align: center; 574 | vertical-align: middle; 575 | line-height: .4rem 576 | } 577 | 578 | .fen-rank .middle .rank-group ul li{ 579 | margin-top: .19rem; 580 | margin-bottom: .19rem; 581 | line-height: .4rem; 582 | font-size: 14px; 583 | } 584 | 585 | .final .middle{ 586 | padding-top: 0; 587 | } 588 | 589 | .final .middle .title{ 590 | background-image: url('../../images/final-title.png'); 591 | } 592 | 593 | .final .middle .content-title{ 594 | width: 100%; 595 | height: .45rem; 596 | display: flex; 597 | margin-top: .27rem; 598 | } 599 | 600 | .final .middle .content-title .final-left-border{ 601 | width: 1.94rem; 602 | height: .45rem; 603 | background: url('../../images/final-border1.png'); 604 | background-size: 100% 100%; 605 | } 606 | 607 | .final .middle .content-title .final-right-border{ 608 | width: 1.94rem; 609 | height: .45rem; 610 | background-image: url('../../images/final-border2.png'); 611 | background-size: 100% 100%; 612 | } 613 | 614 | .final .middle .content-title .final-content-title{ 615 | font-size: 20px; 616 | line-height: .45rem; 617 | } 618 | 619 | .final .middle .content{ 620 | width: 100%; 621 | padding: .35rem .6rem; 622 | position: relative; 623 | box-sizing: border-box; 624 | } 625 | 626 | .final .middle .content .content-previous{ 627 | background-image: url('../../images/middle.png'); 628 | width: 5.08rem; 629 | height: .63rem; 630 | background-size: 100% 100%; 631 | text-align: center; 632 | vertical-align: middle; 633 | font-size: 15px; 634 | line-height: .63rem; 635 | } 636 | 637 | .final .middle .content .connect-linear{ 638 | background-image: url('../../images/connect-linear.png'); 639 | background-size: 100% 100%; 640 | width: .43rem; 641 | height: .43rem; 642 | margin: 0 auto; 643 | } 644 | 645 | .final footer .footer-left-shading{ 646 | margin: 0; 647 | width: .51rem; 648 | height: 2.07rem; 649 | background-image: url('../../images/final-footer-left.png'); 650 | } 651 | 652 | .final footer .footer-right-shading{ 653 | margin: 0; 654 | width: 3.64rem; 655 | margin-top: .4rem; 656 | height: 1.68rem; 657 | background-image: url('../../images/final-footer-right.png'); 658 | } -------------------------------------------------------------------------------- /demo1/src/css/swiper-3.4.2.min.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Swiper 3.4.2 3 | * Most modern mobile touch slider and framework with hardware accelerated transitions 4 | * 5 | * http://www.idangero.us/swiper/ 6 | * 7 | * Copyright 2017, Vladimir Kharlampidi 8 | * The iDangero.us 9 | * http://www.idangero.us/ 10 | * 11 | * Licensed under MIT 12 | * 13 | * Released on: March 10, 2017 14 | */ 15 | .swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;z-index:1}.swiper-container-no-flexbox .swiper-slide{float:left}.swiper-container-vertical>.swiper-wrapper{-webkit-box-orient:vertical;-moz-box-orient:vertical;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-o-transform:translate(0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.swiper-container-multirow>.swiper-wrapper{-webkit-box-lines:multiple;-moz-box-lines:multiple;-ms-flex-wrap:wrap;-webkit-flex-wrap:wrap;flex-wrap:wrap}.swiper-container-free-mode>.swiper-wrapper{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out;margin:0 auto}.swiper-slide{-webkit-flex-shrink:0;-ms-flex:0 0 auto;flex-shrink:0;width:100%;height:100%;position:relative}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;align-items:flex-start;-webkit-transition-property:-webkit-transform,height;-moz-transition-property:-moz-transform;-o-transition-property:-o-transform;-ms-transition-property:-ms-transform;transition-property:transform,height}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-wp8-horizontal{-ms-touch-action:pan-y;touch-action:pan-y}.swiper-wp8-vertical{-ms-touch-action:pan-x;touch-action:pan-x}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:27px;height:44px;margin-top:-22px;z-index:10;cursor:pointer;-moz-background-size:27px 44px;-webkit-background-size:27px 44px;background-size:27px 44px;background-position:center;background-repeat:no-repeat}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");left:10px;right:auto}.swiper-button-prev.swiper-button-black,.swiper-container-rtl .swiper-button-next.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-prev.swiper-button-white,.swiper-container-rtl .swiper-button-next.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");right:10px;left:auto}.swiper-button-next.swiper-button-black,.swiper-container-rtl .swiper-button-prev.swiper-button-black{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E")}.swiper-button-next.swiper-button-white,.swiper-container-rtl .swiper-button-prev.swiper-button-white{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E")}.swiper-pagination{position:absolute;text-align:center;-webkit-transition:.3s;-moz-transition:.3s;-o-transition:.3s;transition:.3s;-webkit-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-moz-appearance:none;-ms-appearance:none;-webkit-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-white .swiper-pagination-bullet{background:#fff}.swiper-pagination-bullet-active{opacity:1;background:#007aff}.swiper-pagination-white .swiper-pagination-bullet-active{background:#fff}.swiper-pagination-black .swiper-pagination-bullet-active{background:#000}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;-webkit-transform:translate3d(0,-50%,0);-moz-transform:translate3d(0,-50%,0);-o-transform:translate(0,-50%);-ms-transform:translate3d(0,-50%,0);transform:translate3d(0,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:5px 0;display:block}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 5px}.swiper-pagination-progress{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progress .swiper-pagination-progressbar{background:#007aff;position:absolute;left:0;top:0;width:100%;height:100%;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left top}.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar{-webkit-transform-origin:right top;-moz-transform-origin:right top;-ms-transform-origin:right top;-o-transform-origin:right top;transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progress{width:100%;height:4px;left:0;top:0}.swiper-container-vertical>.swiper-pagination-progress{width:4px;height:100%;left:0;top:0}.swiper-pagination-progress.swiper-pagination-white{background:rgba(255,255,255,.5)}.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar{background:#fff}.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar{background:#000}.swiper-container-3d{-webkit-perspective:1200px;-moz-perspective:1200px;-o-perspective:1200px;perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(right,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:-webkit-gradient(linear,right top,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(left,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(bottom,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:-webkit-gradient(linear,left bottom,left top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,0)));background-image:-webkit-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-moz-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:-o-linear-gradient(top,rgba(0,0,0,.5),rgba(0,0,0,0));background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-coverflow .swiper-wrapper,.swiper-container-flip .swiper-wrapper{-ms-perspective:1200px}.swiper-container-cube,.swiper-container-flip{overflow:visible}.swiper-container-cube .swiper-slide,.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-cube .swiper-slide .swiper-slide,.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active,.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top,.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-slide{visibility:hidden;-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube.swiper-container-rtl .swiper-slide{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-ms-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;-webkit-transition-property:opacity;-moz-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-zoom-container{width:100%;height:100%;display:-webkit-box;display:-moz-box;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-box-pack:center;-moz-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-box-align:center;-moz-box-align:center;-ms-flex-align:center;-webkit-align-items:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;-webkit-transform-origin:50%;-moz-transform-origin:50%;transform-origin:50%;-webkit-animation:swiper-preloader-spin 1s steps(12,end) infinite;-moz-animation:swiper-preloader-spin 1s steps(12,end) infinite;animation:swiper-preloader-spin 1s steps(12,end) infinite}.swiper-lazy-preloader:after{display:block;content:"";width:100%;height:100%;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");background-position:50%;-webkit-background-size:100%;background-size:100%;background-repeat:no-repeat}.swiper-lazy-preloader-white:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E")}@-webkit-keyframes swiper-preloader-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}} -------------------------------------------------------------------------------- /demo1/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | test 8 | 9 | 10 | 11 | 12 | 13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 | 24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 | 36 | 37 | 38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 | 52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 | 65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 | 73 |
74 |
75 | 76 |
77 |
78 |
79 |
80 |
81 |
日均PV
UV统计
82 |
83 |
84 |
85 |
86 | 87 | 88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
最具人气活动
96 |
97 |
98 |
    99 |
100 |
101 |
102 | 103 | 104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
十佳人气活动
112 |
113 |
114 |
    115 |
116 |
117 |
118 | 119 | 120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
    132 |
  • 133 |
  • 134 |
  • 135 |
  • 136 |
137 |
138 |
139 |
140 | 141 | 142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
粉丝增长榜
150 |
151 |
152 |
153 |
序号
154 |
    155 |
156 |
157 |
158 |
公众列表
159 |
    160 |
161 |
162 |
163 |
粉丝数增长量
164 |
    165 |
166 |
167 |
168 |
169 | 170 | 171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 | 183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 | 198 |
199 |
200 |
201 |
202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | -------------------------------------------------------------------------------- /demo1/src/js/index.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function(){ 2 | console.log('ready'); 3 | 4 | const swiper = new Swiper('.swiper-container',{ 5 | onInit: function(swiper){ 6 | swiperAnimateCache(swiper); 7 | swiperAnimate(swiper); 8 | }, 9 | onSlideChangeEnd: function(swiper){ 10 | swiperAnimate(swiper); 11 | }, 12 | direction: 'vertical', 13 | nextButton: '.arrow' 14 | }); 15 | 16 | function static(static = null){ 17 | if(!static){ 18 | return; 19 | } 20 | const { title, people, data} = static; 21 | const numberHtml = `${people}人次`; 22 | const titleHtml = `

${title}

`; 23 | $('#people').html(numberHtml); 24 | $('.traffic-static header .title').html(titleHtml); 25 | const result = []; 26 | data.forEach((item, index) => { 27 | const num = Math.floor(item / 5000); 28 | const last = item / 5000 - num; 29 | let block = ''; 30 | for(let i = 0; i < num; i++){ 31 | block += `
`; 32 | } 33 | block += `
${item}
${block}
`; 35 | result.push(proccess); 36 | }); 37 | $('.proccess-content').each((index, item) => { 38 | $(item).html(result[index]); 39 | }); 40 | } 41 | 42 | function home(home = null){ 43 | if(!home){ 44 | return; 45 | } 46 | $('.middle-border').text(home.time); 47 | } 48 | 49 | function popularity(popularity = null){ 50 | if(!popularity){ 51 | return; 52 | } 53 | const { title, data } = popularity; 54 | $('#popularity .title').text(title); 55 | let html = ''; 56 | data.forEach((item, index) => { 57 | html += `
  • 58 |
    59 |

    ${item.title}

    60 |

    公众号:${item.gongzhonghao}

    61 |
    62 |
    63 |
    64 |

    参与人数

    65 |

    ${item.number}

    66 |
    67 |
  • ` 68 | }); 69 | $('#popularity .middle-content').html(html); 70 | } 71 | 72 | function top(top = null){ 73 | if(!top){ 74 | return; 75 | } 76 | const { title, data } = top; 77 | $('#top .title').text(title); 78 | let html = ''; 79 | data.forEach((item, index) => { 80 | html += `
  • 81 |
    82 |

    ${item.title}

    83 |

    公众号:${item.gongzhonghao}

    84 |
    85 |
    86 |
    87 |

    参与人数

    88 |

    ${item.number}

    89 |
    90 |
  • ` 91 | }); 92 | $('#top .middle-content').html(html); 93 | } 94 | 95 | function analysis(analysis = null){ 96 | if(!analysis){ 97 | return; 98 | } 99 | const { title, subtitle, imgs, content} = analysis; 100 | $('.hot-activity .title').text(title); 101 | $('.hot-activity .activity-title').text(subtitle); 102 | const defaultImage = '../images/occupy-img.png'; 103 | $('.hot-activity .image').each((index, item) => { 104 | if(index > imgs.length){ 105 | $(item).html(``); 106 | }else{ 107 | $(item).html(``); 108 | } 109 | }); 110 | $('.hot-activity .introduction').text(content); 111 | } 112 | 113 | function rank(rank = null){ 114 | if(!rank) return; 115 | const { title, data } = rank; 116 | $('#fans').text(title); 117 | let serial = ''; 118 | let gongzhonghao = ''; 119 | let increase = ''; 120 | data.forEach((item, index) => { 121 | serial += `
  • ${item.id}
  • `; 122 | gongzhonghao += `
  • ${item.gongzhonghao}
  • `; 123 | increase += `
  • ${item.number}
  • `; 124 | }); 125 | $('.serial-number').html(serial); 126 | $('.gongzhonghao-list').html(gongzhonghao); 127 | $('.increase-number').html(increase); 128 | } 129 | 130 | function final(final = null){ 131 | if(!final) return; 132 | const { title, data } = final; 133 | $('.final-content-title').text(title); 134 | let html = ''; 135 | data.forEach((item, index) => { 136 | if(index === 2){ 137 | html += `
    ${item}
    `; 138 | return; 139 | } 140 | html += `
    ${item}
    141 |
    `; 142 | }); 143 | $('.final .middle .content').html(html); 144 | } 145 | 146 | function init(data){ 147 | home(data.home); 148 | static(data.static); 149 | popularity(data.popularity); 150 | top(data.top); 151 | analysis(data.analysis); 152 | rank(data.fans); 153 | final(data.final); 154 | } 155 | 156 | $.ajax({ 157 | url: 'http://www.lhbzimo.cn:5000/', 158 | dataType: 'json', 159 | type: 'GET', 160 | data: {}, 161 | success: function(data){ 162 | init(data); 163 | }, 164 | error: function(err, data){ 165 | console.log('request timeout'); 166 | } 167 | }) 168 | }); -------------------------------------------------------------------------------- /demo1/src/js/rem.js: -------------------------------------------------------------------------------- 1 | (function(doc, win){ 2 | const docEl = doc.documentElement; 3 | const resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; 4 | const recale = function(){ 5 | const width = docEl.clientWidth; 6 | if (!width) return; 7 | if(width > 750){ 8 | docEl.style.fontSize = '100px'; 9 | }else{ 10 | docEl.style.fontSize = width / 6.4 + 'px'; 11 | } 12 | }; 13 | 14 | if(document.addEventListener){ 15 | win.addEventListener(resizeEvt, recale, false); 16 | doc.addEventListener('DOMContentLoaded', recale, false); 17 | } 18 | })(document, window); -------------------------------------------------------------------------------- /demo1/src/js/swiper.animate1.0.2.min.js: -------------------------------------------------------------------------------- 1 | //本插件由www.swiper.com.cn提供 2 | function swiperAnimateCache(){for(allBoxes=window.document.documentElement.querySelectorAll(".ani"),i=0;i { 8 | // ctx.set('Access-Control-Allow-Origin','*'); 9 | // ctx.response.type = 'json'; 10 | // ctx.response.body = fs.createReadStream(path.resolve(__dirname, 'mock.json')); 11 | // }; 12 | 13 | // app.use(route.get('/', main)); 14 | 15 | // app.listen(3000); 16 | const Express = require('express'); 17 | const fs = require('fs'); 18 | const path = require('path'); 19 | 20 | const app = new Express(); 21 | 22 | app.get('/', function(req, res){ 23 | res.setHeader("Access-Control-Allow-Origin", "*"); 24 | fs.readFile(path.resolve(__dirname, 'mock.json'), function(err, data){ 25 | res.json(JSON.parse(data)); 26 | }); 27 | }); 28 | 29 | app.listen(5000); -------------------------------------------------------------------------------- /demo1/src/mock-data/mock.json: -------------------------------------------------------------------------------- 1 | { 2 | "home": { 3 | "time": "2016.07.01-07.31" 4 | }, 5 | "static":{ 6 | "title": "2016年7.01-7.31期间共进行微信线上运营活动58场累计吸引参与用户约", 7 | "people": 800924, 8 | "data":[62000,92000,82000,152000] 9 | }, 10 | "popularity":{ 11 | "title": "最具人气活动", 12 | "data": [ 13 | { 14 | "title": "2016年6月“浙江好人” 投票", 15 | "gongzhonghao": "文明浙江", 16 | "number": 10900 17 | }, 18 | { 19 | "title": "2016年6月“浙江好人” 投票", 20 | "gongzhonghao": "文明浙江", 21 | "number": 10900 22 | }, 23 | { 24 | "title": "2016年6月“浙江好人” 投票", 25 | "gongzhonghao": "文明浙江", 26 | "number": 10900 27 | }, 28 | { 29 | "title": "2016年6月“浙江好人” 投票", 30 | "gongzhonghao": "文明浙江", 31 | "number": 10900 32 | }, 33 | { 34 | "title": "2016年6月“浙江好人” 投票", 35 | "gongzhonghao": "文明浙江", 36 | "number": 10900 37 | } 38 | ] 39 | }, 40 | "top": { 41 | "title": "十佳人气活动", 42 | "data": [ 43 | { 44 | "title": "2016年6月“浙江好人” 投票", 45 | "gongzhonghao": "文明浙江", 46 | "number": 10900 47 | }, 48 | { 49 | "title": "2016年6月“浙江好人” 投票", 50 | "gongzhonghao": "文明浙江", 51 | "number": 10900 52 | }, 53 | { 54 | "title": "2016年6月“浙江好人” 投票", 55 | "gongzhonghao": "文明浙江", 56 | "number": 10900 57 | }, 58 | { 59 | "title": "2016年6月“浙江好人” 投票", 60 | "gongzhonghao": "文明浙江", 61 | "number": 10900 62 | }, 63 | { 64 | "title": "2016年6月“浙江好人” 投票", 65 | "gongzhonghao": "文明浙江", 66 | "number": 10900 67 | } 68 | ] 69 | }, 70 | "analysis": { 71 | "title": "热点活动分析", 72 | "subtitle": "“迎G20杭州峰会·看下沙新变化”分析", 73 | "imgs": ["https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQfzkfrDs4N6Esp7vFyla4pSeAv9RwplGUUwpnLNQPxpNc2xlZ_", "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQAz-pq_jA67iVeIijx1zqnFY7XadfGPaw-cB_b-OW1VGA4Q5IkJw"], 74 | "content": "活动介绍:为了与市民共同迎接G20杭州峰会的到来,杭州经济技术开发区管委会联合浙报集团杭州分社、浙江在线共同推出看新闻、找线索、开宝箱活动。从5月26日起,开发区推出线上寻宝活动,通过阅读四篇文章,找寻线索,就可以获得开启宝箱的密码。" 75 | }, 76 | "fans": { 77 | "title": "粉丝增长榜", 78 | "data": [ 79 | { 80 | "id":1, 81 | "gongzhonghao": "浙江禁毒", 82 | "number": 2332322 83 | }, 84 | { 85 | "id":2, 86 | "gongzhonghao": "文明浙江", 87 | "number": 2332322 88 | }, 89 | { 90 | "id":3, 91 | "gongzhonghao": "亲子去哪儿", 92 | "number": 2332322 93 | }, 94 | { 95 | "id":4, 96 | "gongzhonghao": "嵊州发布", 97 | "number": 2332322 98 | }, 99 | { 100 | "id":5, 101 | "gongzhonghao": "浙江健康教育", 102 | "number": 2332322 103 | }, 104 | { 105 | "id":6, 106 | "gongzhonghao": "定海山", 107 | "number": 2332322 108 | }, 109 | { 110 | "id":7, 111 | "gongzhonghao": "浙江手机报", 112 | "number": 2332322 113 | }, 114 | { 115 | "id":8, 116 | "gongzhonghao": "品牌营销中心", 117 | "number": 2332322 118 | }, 119 | { 120 | "id":9, 121 | "gongzhonghao": "青春浙江", 122 | "number": 2332322 123 | }, 124 | { 125 | "id":10, 126 | "gongzhonghao": "浙江在线健康频道", 127 | "number": 2332322 128 | } 129 | ] 130 | }, 131 | "final":{ 132 | "title": "往期报告查询", 133 | "data": [ 134 | "2016年6月第二期","2016年6月第一期","2016年5月第二期" 135 | ] 136 | } 137 | } -------------------------------------------------------------------------------- /demo2/README.md: -------------------------------------------------------------------------------- 1 | # puzzle game 2 | **this is a puzzle game use canvas to draw** 3 | 4 | 拼图游戏 5 | 6 | 使用canvas进行每块图片进行绘制,游戏逻辑的判断,最后是游戏的结束。 7 | 8 | 详细的逻辑可以参考我的源码 9 | 10 | ### demo地址 11 | [拼图游戏](http://www.lhbzimo.cn/demo2/index.html) 12 | 13 | ### 二维码 14 | 15 | ![images](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/demo2.png) 16 | 17 | ### 效果图 18 | 19 | ![image](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/puzzle.png) 20 | -------------------------------------------------------------------------------- /demo2/a.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/a.mp3 -------------------------------------------------------------------------------- /demo2/css/index.css: -------------------------------------------------------------------------------- 1 | *{ 2 | padding: 0; 3 | margin: 0; 4 | } 5 | 6 | body{ 7 | height: 100vh; 8 | position: relative; 9 | } 10 | 11 | audio{ 12 | width: 0; 13 | height: 0; 14 | position: absolute; 15 | 16 | } 17 | 18 | #musicBtn{ 19 | position: fixed; 20 | width: .93rem; 21 | height: .73rem; 22 | top: 2%; 23 | right: 3%; 24 | z-index: 99; 25 | } 26 | 27 | 28 | 29 | /* first part */ 30 | .first-part{ 31 | width: 100%; 32 | height: 100%; 33 | background-image: url('../imgs/index.png'); 34 | background-size: 100% 100%; 35 | } 36 | 37 | /* button group */ 38 | .first-part .btn_group{ 39 | width: 100%; 40 | list-style: none; 41 | position: absolute; 42 | height: auto; 43 | bottom: 16%; 44 | } 45 | 46 | .first-part .btn_group .btn{ 47 | float: left; 48 | width: 40%; 49 | position: relative; 50 | margin: 5%; 51 | } 52 | 53 | .first-part .btn_group .btn img{ 54 | width: 100%; 55 | } 56 | 57 | .first-part .gamerule-part{ 58 | display: none; 59 | position: absolute; 60 | height: 100%; 61 | width: 100%; 62 | z-index: 5; 63 | background-color: rgba(0, 0, 0, 0.7); 64 | } 65 | 66 | .gamerule-part .rule{ 67 | width: 6.56rem; 68 | height: 7.29rem; 69 | margin: 1rem auto 0; 70 | display: block; 71 | } 72 | 73 | .gamerule-part .btn{ 74 | width: 40%; 75 | position: relative; 76 | margin: 20px auto 0; 77 | } 78 | 79 | .gamerule-part .btn img{ 80 | width: 100%; 81 | } 82 | 83 | /* game part */ 84 | 85 | .game-part { 86 | height: 100vh; 87 | background-image: url(../imgs/background.png); 88 | background-size: 100% 100%; 89 | display: none; 90 | position: relative; 91 | } 92 | 93 | .second-part{ 94 | width: 100%; 95 | position: relative; 96 | height: 100%; 97 | } 98 | 99 | .second-part .game-loading{ 100 | position: absolute; 101 | width: 100%; 102 | height: 100%; 103 | top: 0; 104 | left: 0; 105 | background-color: rgba(0, 0, 0, 0.7); 106 | z-index: 10; 107 | } 108 | 109 | .second-part .game-loading img{ 110 | width: 3.24rem; 111 | height: 3.24rem; 112 | position: relative; 113 | display: block; 114 | top: 50%; 115 | margin: -1.62rem auto 0; 116 | } 117 | 118 | .second-part header { 119 | width: 100%; 120 | height: 25%; 121 | position: relative; 122 | } 123 | 124 | .second-part header .source-image { 125 | height: 50%; 126 | float: left; 127 | margin-top: 10%; 128 | margin-left: 8%; 129 | border: 1px solid #ca4174; 130 | box-shadow: 0 0 10px black; 131 | } 132 | 133 | .second-part header .user-date { 134 | height: 100%; 135 | float: right; 136 | width: 50%; 137 | position: relative; 138 | } 139 | 140 | .second-part header .user-date .guanqia { 141 | height: 2.64rem; 142 | position: relative; 143 | margin-top: 10%; 144 | margin-right: 5%; 145 | float: right; 146 | } 147 | 148 | .second-part header .user-date .time{ 149 | font-size: 22px; 150 | color: #ca4174; 151 | position: absolute; 152 | top: 0.9rem; 153 | left: 1.2rem; 154 | letter-spacing: 5px; 155 | text-shadow: 0 0 15px black; 156 | } 157 | 158 | .second-part canvas { 159 | width: 6.5rem; 160 | height: 6.5rem; 161 | border: 2px solid #ca4174; 162 | display: block; 163 | margin: 0.5rem auto 0; 164 | box-shadow: 0 0 10px black; 165 | } 166 | 167 | .game-over{ 168 | padding-top: 1px; 169 | display: none; 170 | height: 100%; 171 | position: relative; 172 | background-color: rgba(0, 0, 0, 0.7); 173 | } 174 | 175 | .game-over .lose{ 176 | width: 6.48rem; 177 | height: 5.58rem; 178 | display: block; 179 | margin: 2rem auto 0; 180 | } 181 | 182 | .game-over ul{ 183 | list-style: none; 184 | width: 100%; 185 | margin: .2rem auto; 186 | } 187 | 188 | .game-over ul li{ 189 | width: 50%; 190 | height: auto; 191 | float: left; 192 | text-align: center; 193 | } 194 | 195 | .game-over ul li img{ 196 | width: 2.96rem; 197 | height: 0.94rem; 198 | } 199 | 200 | .game-over #share { 201 | position: absolute; 202 | width: 100%; 203 | height: 100%; 204 | top: 0; 205 | left: 0; 206 | display: none; 207 | } 208 | 209 | .game-success{ 210 | display: none; 211 | width: 100%; 212 | height: 100%; 213 | position: relative; 214 | padding-top: 1px; 215 | text-align: center; 216 | } 217 | 218 | .game-success .win{ 219 | width: 6.48rem; 220 | height: 5.58rem; 221 | margin-top: 1rem; 222 | } 223 | 224 | .game-success #open{ 225 | width: 2.97rem; 226 | height: 0.94rem; 227 | margin-top: .2rem; 228 | } 229 | -------------------------------------------------------------------------------- /demo2/imgs/4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/4-1.png -------------------------------------------------------------------------------- /demo2/imgs/4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/4-2.png -------------------------------------------------------------------------------- /demo2/imgs/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/background.png -------------------------------------------------------------------------------- /demo2/imgs/big1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/big1.png -------------------------------------------------------------------------------- /demo2/imgs/big2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/big2.png -------------------------------------------------------------------------------- /demo2/imgs/big3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/big3.png -------------------------------------------------------------------------------- /demo2/imgs/big4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/big4.png -------------------------------------------------------------------------------- /demo2/imgs/big5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/big5.png -------------------------------------------------------------------------------- /demo2/imgs/big6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/big6.png -------------------------------------------------------------------------------- /demo2/imgs/download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/download.png -------------------------------------------------------------------------------- /demo2/imgs/downloadBtn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/downloadBtn.png -------------------------------------------------------------------------------- /demo2/imgs/gamelose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/gamelose.png -------------------------------------------------------------------------------- /demo2/imgs/gamerule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/gamerule.png -------------------------------------------------------------------------------- /demo2/imgs/giftbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/giftbox.png -------------------------------------------------------------------------------- /demo2/imgs/have-award.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/have-award.jpg -------------------------------------------------------------------------------- /demo2/imgs/have-award1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/have-award1.png -------------------------------------------------------------------------------- /demo2/imgs/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/index.png -------------------------------------------------------------------------------- /demo2/imgs/inputimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/inputimg.png -------------------------------------------------------------------------------- /demo2/imgs/invite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/invite.png -------------------------------------------------------------------------------- /demo2/imgs/jump_award.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/jump_award.png -------------------------------------------------------------------------------- /demo2/imgs/loading3.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/loading3.gif -------------------------------------------------------------------------------- /demo2/imgs/lv1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/lv1.png -------------------------------------------------------------------------------- /demo2/imgs/lv2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/lv2.png -------------------------------------------------------------------------------- /demo2/imgs/lv3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/lv3.png -------------------------------------------------------------------------------- /demo2/imgs/no-award.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/no-award.png -------------------------------------------------------------------------------- /demo2/imgs/note.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/note.png -------------------------------------------------------------------------------- /demo2/imgs/num1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/num1.png -------------------------------------------------------------------------------- /demo2/imgs/num2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/num2.png -------------------------------------------------------------------------------- /demo2/imgs/num3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/num3.png -------------------------------------------------------------------------------- /demo2/imgs/openbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/openbox.png -------------------------------------------------------------------------------- /demo2/imgs/pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/pass.png -------------------------------------------------------------------------------- /demo2/imgs/restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/restart.png -------------------------------------------------------------------------------- /demo2/imgs/return.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/return.png -------------------------------------------------------------------------------- /demo2/imgs/share.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/share.png -------------------------------------------------------------------------------- /demo2/imgs/startgame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/startgame.png -------------------------------------------------------------------------------- /demo2/imgs/sure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/sure.png -------------------------------------------------------------------------------- /demo2/imgs/titlep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/titlep.png -------------------------------------------------------------------------------- /demo2/imgs/winnbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/winnbg.png -------------------------------------------------------------------------------- /demo2/imgs/yes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/yes.png -------------------------------------------------------------------------------- /demo2/imgs/youxishuoming1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/youxishuoming1.png -------------------------------------------------------------------------------- /demo2/imgs/zhidaole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo2/imgs/zhidaole.png -------------------------------------------------------------------------------- /demo2/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | html5 拼图游戏 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | music 16 | 17 | 18 |
    19 | 20 | 21 | 25 | 26 |
    27 | rule 28 |
    understand
    29 |
    30 | 31 |
    32 | 33 | 34 | 35 |
    36 | 37 |
    38 | 39 |
    40 | second 41 |
    42 | 43 | 44 | 45 |
    46 | source 47 |
    48 | guanqia 49 | 00:60 50 |
    51 |
    52 | 53 | 请选择更高版本的浏览器 54 |
    55 | 56 |
    57 | lose 58 |
      59 |
    • 60 | restart 61 |
    • 62 |
    • 63 | invite 64 |
    • 65 |
    66 | share 67 |
    68 | 69 |
    70 | winnbg 71 | openbox 72 |
    73 |
    74 | 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /demo2/js/index.js: -------------------------------------------------------------------------------- 1 | 2 | //loading 3 | 4 | function playMusic(){ //播放或暂停音乐 5 | var music = document.getElementById('music'); 6 | if(music.paused){ 7 | $('#musicBtn').attr('src', './imgs/4-1.png'); 8 | music.play(); 9 | }else{ 10 | $('#musicBtn').attr('src', './imgs/4-2.png'); 11 | music.pause(); 12 | } 13 | } 14 | 15 | $('#musicBtn').on('click', playMusic); 16 | 17 | //game rule 18 | 19 | $('#gamerule').on('click', function(){ 20 | $('.gamerule-part').fadeIn(); 21 | }); 22 | 23 | $('#understand').on('click', function(){ 24 | $('.gamerule-part').fadeOut(); 25 | }); 26 | 27 | $('#startgame').on('click', gameStart); 28 | 29 | function gameStart() { 30 | $('.first-part').fadeOut(); 31 | $('.game-part').fadeIn(); 32 | 33 | gameloading(); 34 | gameInit(); 35 | } 36 | 37 | function gameloading() { //游戏开始时的计时 38 | var url = ['./imgs/num1.png', './imgs/num2.png']; 39 | var count = 1; 40 | var timer = setInterval(function(){ 41 | $('.loading-second').attr('src', url[count]); 42 | count--; 43 | }, 1000); 44 | setTimeout(function() { 45 | if(count < 0) { 46 | console.log('cleaner'); 47 | clearInterval(timer); 48 | $('.game-loading').fadeOut(); 49 | gameTime(time); 50 | } 51 | }, 3000); 52 | } 53 | 54 | //游戏主要逻辑部分 55 | const cvs = document.getElementById('canvas'); 56 | const cxt = cvs.getContext('2d'); 57 | const cvsWidth = cvs.width; 58 | const cvsHeight = cvs.height; 59 | const map = new Map(); 60 | let level = 1, 61 | sourceImage = [ 62 | './imgs/big1.png', 63 | './imgs/big2.png', 64 | './imgs/big3.png', 65 | './imgs/big4.png', 66 | './imgs/big5.png', 67 | './imgs/big6.png' 68 | ], 69 | targetImage = new Image(), 70 | imgWidth, imgHeight, pointArr, tileWidth, tileHeight, select = new Point(-1, -1), time = 60; 71 | 72 | function Point(x, y) { 73 | this.x = x; 74 | this.y = y; 75 | } 76 | 77 | function gameInit() { //初始化数组 78 | //get image 79 | let index = Math.floor(Math.random() * sourceImage.length); 80 | $('.source-image').attr('src', sourceImage[index]); 81 | targetImage.src = sourceImage[index]; 82 | pointArr = getRandomArray(level); 83 | getMap(level); 84 | targetImage.onload = function() { 85 | drawImg(pointArr, level); 86 | } 87 | cvs.addEventListener('touchend', moveBlock, false); 88 | } 89 | 90 | function getMap(level) { //得到一个坐标与值的对应表 91 | map.clear(); 92 | const num = level + 1; 93 | var count = 0; 94 | for(let i = 0; i < num; i++) { 95 | for( let j = 0; j < num; j++) { 96 | const point = new Point(i, j); 97 | const str = '' + i + '' + j; 98 | map.set(count, point); 99 | map.set(str, count); 100 | count++; 101 | } 102 | } 103 | } 104 | 105 | function getRandomArray(level){ //得到一个随机数组 106 | const res = []; 107 | const num = level + 1; 108 | let i = 0; 109 | while(true) { 110 | if( i >= num*num){ 111 | if(judge(res)){ 112 | i = 0; 113 | continue; 114 | } 115 | break; 116 | } 117 | let number = Math.floor(Math.random() * num * num); 118 | if(res.indexOf(number) === -1) { 119 | res.push(number); 120 | i++; 121 | } 122 | } 123 | return res; 124 | } 125 | 126 | function drawImg(arr, level) { //根据数组绘制图像 127 | const num = level + 1; 128 | imgWidth = targetImage.width / num; 129 | imgHeight = targetImage.height / num; 130 | tileWidth = cvsWidth / num; 131 | tileHeight = cvsHeight / num; 132 | let index = 0; 133 | for(let i = 0; i < num; i++) { 134 | for( let j = 0; j < num; j++) { 135 | const key = arr[index]; 136 | const point = map.get(key); 137 | cxt.drawImage(targetImage, point.x * imgWidth, point.y * imgHeight, imgWidth, imgHeight, i * tileWidth, j * tileHeight, tileWidth, tileHeight); 138 | index++; 139 | } 140 | } 141 | } 142 | 143 | function moveBlock(event) { 144 | const ev = event || window.event; 145 | const touch = ev.changedTouches[0]; 146 | const num = level + 1; 147 | const cvsSize = this.offsetWidth / num; 148 | const x = Math.floor((touch.pageX - this.offsetLeft) / cvsSize); 149 | const y = Math.floor((touch.pageY - this.offsetTop) / cvsSize); 150 | if(select.x === -1) { 151 | select.x = x; 152 | select.y = y; 153 | addRect(select); 154 | }else { 155 | const temp = '' + x + y; 156 | const index = map.get(temp); 157 | const other = '' + select.x + select.y; 158 | const selectIndex = map.get(other); 159 | const med = pointArr[index]; 160 | pointArr[index] = pointArr[selectIndex]; 161 | pointArr[selectIndex] = med; 162 | redraw(pointArr, level); 163 | select.x = -1; 164 | select.y = -1; 165 | if(judge(pointArr)) { 166 | if(level >= 3){ 167 | cvs.removeEventListener('touchend', moveBlock, false); 168 | success(); 169 | } 170 | level++; 171 | changeGuanqia(level); 172 | cvs.removeEventListener('touchend', moveBlock, false); 173 | gameInit(); 174 | } 175 | } 176 | } 177 | 178 | function addRect(select) { 179 | cxt.strokeRect(select.x * imgWidth, select.y * imgHeight, tileWidth, tileHeight); 180 | } 181 | 182 | function redraw(arr, level) { 183 | cxt.clearRect(0, 0, cvsWidth, cvsHeight); 184 | drawImg(arr, level); 185 | } 186 | 187 | function judge(arr) { 188 | const num = level + 1; 189 | for( let i = 0; i < num * num - 1 ; i++) { 190 | if(arr[i] > arr[i+1]){ 191 | return false; 192 | } 193 | } 194 | return true; 195 | } 196 | 197 | function changeGuanqia(level) { 198 | $('.guanqia').attr('src', `./imgs/lv${level}.png`); 199 | } 200 | 201 | function success() { 202 | $('.second-part').fadeOut(); 203 | $('.game-success').fadeIn(); 204 | } 205 | 206 | function gameTime(time) { 207 | var gameTimer = setInterval(function(){ 208 | time--; 209 | if(time === 0) { 210 | clearInterval(gameTimer); 211 | gameover(); 212 | level = 1; 213 | time = 60; 214 | changeGuanqia(level); 215 | } 216 | let str; 217 | if(time < 10){ 218 | str = '00:0'+time; 219 | }else{ 220 | str = '00:'+time; 221 | } 222 | $('.time').html(str); 223 | }, 1000) 224 | } 225 | 226 | function gameover() { 227 | $('.second-part').fadeOut(); 228 | $('.game-over').fadeIn(); 229 | } 230 | 231 | $('#restart').on('click', function(e){ 232 | e.preventDefault(); 233 | $('.game-over').fadeOut(); 234 | $('.second-part').fadeIn(); 235 | gameInit(); 236 | gameTime(time); 237 | }); 238 | 239 | $('#invite').on('click', function(){ 240 | $('#share').fadeIn(); 241 | }); 242 | 243 | $('#share').on('click', function(e){ 244 | $(this).fadeOut(); 245 | }); 246 | 247 | $('#open').on('click', function(e){ 248 | const probability= Math.random(); 249 | $('.game-success').fadeOut(); 250 | if(probability >= 0.5) { 251 | 252 | } 253 | }) 254 | -------------------------------------------------------------------------------- /demo2/js/loading.js: -------------------------------------------------------------------------------- 1 | var loadingHtml = `
    2 |
    3 | loading 4 | loading 5 |
    6 |
    `; 7 | 8 | document.write(loadingHtml); 9 | 10 | window.onload = function(){ 11 | var loadingLayer = document.getElementsByClassName('refresh-layer')[0]; 12 | loadingLayer.parentNode.removeChild(loadingLayer); 13 | } -------------------------------------------------------------------------------- /demo2/js/rem.js: -------------------------------------------------------------------------------- 1 | // (function(doc, win) { 2 | // console.log(111); 3 | // var docEl = doc.documentElement; 4 | // var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; 5 | 6 | // var recalc = function recalc() { 7 | // var clientWidth = document.clientWidth; 8 | 9 | // if(!clientWidth) return; 10 | // if(clientWidth > 750) { 11 | // docEl.style.fontSize = '100px'; 12 | // console.log(11); 13 | // }else{ 14 | // docEl.style.fontSize = clientWidth / 7.5 + 'px'; 15 | // console.log(docEl.style.fontSize); 16 | // } 17 | // } 18 | 19 | // win.addEventListener(resizeEvt, recalc, false); 20 | // doc.addEventListener('DOMContentLoaded', recalc, false); 21 | // })(document, window); 22 | 23 | (function (doc, win) { 24 | var docEl = doc.documentElement, 25 | resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', 26 | 27 | recalc = function () { 28 | var clientWidth = docEl.clientWidth; 29 | if (!clientWidth) return; 30 | if(clientWidth > 750){ //针对移动版的页面控制在750px内 31 | docEl.style.fontSize = '100px'; 32 | } 33 | if(clientWidth <750){ 34 | // docEl.style.fontSize = 20 * (clientWidth / 320) + 'px'; 35 | docEl.style.fontSize = clientWidth/ 7.5+ 'px'; 36 | 37 | } 38 | 39 | 40 | }; 41 | if (!doc.addEventListener) return; 42 | win.addEventListener(resizeEvt, recalc, false); 43 | doc.addEventListener('DOMContentLoaded', recalc, false); 44 | })(document, window); -------------------------------------------------------------------------------- /demo3/README.md: -------------------------------------------------------------------------------- 1 | # vote waterfall flow demo 2 | 3 | 这个h5的主要采用了上拉加载和下拉刷新的方式,来加载瀑布流的列表内容 4 | 5 | 主要使用了jQuery、better-scroll来进行列表的内容滚动 6 | 7 | ### 分享 8 | 9 | 这里两篇文章,是我在写上拉刷新和下拉加载时的分享,希望在参考源码的同时,也能够明白实现的原理 10 | 11 | [瀑布流列表的下拉刷新和上拉加载实现(上)](https://github.com/laizimo/zimo-article/issues/17) 12 | 13 | [瀑布流列表的下拉刷新和上拉加载实现(下)](https://github.com/laizimo/zimo-article/issues/20) 14 | 15 | ### demo的演示地址 16 | 17 | [demo地址](http://www.lhbzimo.cn/vote/index.html) 18 | 19 | ## 二维码 20 | 21 | ![demo二维码](http://oifsv5iji.bkt.clouddn.com/erweima.png) 22 | 23 | ## 效果图 24 | 25 | ![demo图片](http://oifsv5iji.bkt.clouddn.com/demo-image.png) 26 | -------------------------------------------------------------------------------- /demo3/css/index.css: -------------------------------------------------------------------------------- 1 | *{ 2 | padding: 0; 3 | margin: 0; 4 | } 5 | 6 | html, body{ 7 | font-size: 14px; 8 | } 9 | 10 | header{ 11 | width: 100%; 12 | position: relative; 13 | padding-top: .32rem; 14 | padding-bottom: .36rem; 15 | background: url('../images/header_bg.png'); 16 | background-size: cover; 17 | } 18 | 19 | header .time{ 20 | font-size: 7px; 21 | color: #fff; 22 | text-align: center; 23 | width: 3.32rem; 24 | margin: 0 auto; 25 | line-height: .24rem; 26 | height: .24rem; 27 | margin-bottom: .05rem; 28 | } 29 | 30 | header .container{ 31 | width: 4.45rem; 32 | height: 1.26rem; 33 | background: url('../images/header-border.png') no-repeat; 34 | background-size: 3.32rem 1.26rem; 35 | background-position: top 0 left .56rem; 36 | margin: 0 auto; 37 | padding-top: .2rem; 38 | text-align: center; 39 | } 40 | 41 | header .container .title{ 42 | width: 100%; 43 | font-size: 18px; 44 | color: #fff; 45 | line-height: .4rem; 46 | height: .4rem; 47 | margin-bottom: .05rem; 48 | } 49 | 50 | header .container .subtitle{ 51 | width: 100%; 52 | font-size: 9px; 53 | color: #fff; 54 | line-height: .2rem; 55 | height: .2rem; 56 | } 57 | 58 | nav{ 59 | width: 100%; 60 | padding: .2rem 0 .1rem; 61 | display: flex; 62 | border: 1px solid rgba(7, 17, 27, 0.1); 63 | } 64 | 65 | nav .nav-item{ 66 | flex: 1; 67 | text-align: center; 68 | font-size: 12px; 69 | border-right: 1px solid rgb(115, 121, 127); 70 | } 71 | 72 | nav .nav-item .number{ 73 | font-weight: 700; 74 | } 75 | 76 | nav .nav-item:last-child{ 77 | border: none; 78 | } 79 | 80 | .timer{ 81 | width: 100%; 82 | height: .6rem; 83 | font-size: 12px; 84 | line-height: .6rem; 85 | background: #f3f5f7; 86 | } 87 | 88 | .timer .title{ 89 | color: #666666; 90 | margin-left: .2rem; 91 | } 92 | 93 | .timer .time{ 94 | color: #ff4d16; 95 | margin-left: .16rem; 96 | } 97 | 98 | #wrapper{ 99 | position: absolute; 100 | top: 4rem; 101 | bottom: 0; 102 | width: 100%; 103 | overflow: hidden; 104 | } 105 | 106 | #pull-refresh{ 107 | position: absolute; 108 | top: -1rem; 109 | width: 100%; 110 | z-index: -1; 111 | text-align: center; 112 | color: grey; 113 | } 114 | 115 | #pull-refresh .arrow{ 116 | margin-top: .05rem; 117 | margin-bottom: .06rem; 118 | } 119 | 120 | #pull-refresh .arrow::after{ 121 | content: '下拉刷新' 122 | } 123 | 124 | #pull-refresh .arrow.arrow_up::after{ 125 | content: '松开更新' 126 | } 127 | 128 | .arrow_up img{ 129 | transform: rotateZ(180deg); 130 | -webkit-transform: rotateZ(180deg); 131 | } 132 | 133 | .pull-refresh img{ 134 | transition: transform .4s ease; 135 | width: 20px; 136 | } 137 | 138 | #toploading{ 139 | display: none; 140 | width: 100px; 141 | height: 2rem; 142 | margin: 0 auto; 143 | } 144 | 145 | #toploading img{ 146 | width: 2rem; 147 | height: 2rem; 148 | } 149 | 150 | .wrapper{ 151 | overflow: scroll; 152 | width: 100%; 153 | position: relative; 154 | list-style: none; 155 | padding: 0; 156 | padding-top: .12rem; 157 | } 158 | 159 | .wrapper::after{ 160 | content: ""; 161 | display: block; 162 | clear: both; 163 | } 164 | 165 | .wrapper .list-wrapper{ 166 | width: 50%; 167 | float: left; 168 | position: relative; 169 | } 170 | 171 | .wrapper .list-item{ 172 | float: left; 173 | margin: 0 .13rem .21rem; 174 | width: 2.88rem; 175 | border: 1px solid rgba(7, 17, 27, 0.1); 176 | box-shadow: 0 0 .02rem rgb(115, 121, 127); 177 | position: relative; 178 | } 179 | 180 | .wrapper .list-item img{ 181 | width: 100%; 182 | } 183 | 184 | .wrapper .list-item .name{ 185 | font-size: 14px; 186 | font-weight: 700; 187 | } 188 | 189 | .wrapper .list-item .info{ 190 | font-size: 12px; 191 | color: rgb(115, 121, 127); 192 | } 193 | 194 | .wrapper .list-item .info .vote{ 195 | float: right; 196 | } 197 | 198 | .wrapper .list-item .info .vote .count{ 199 | color: #ff4d16; 200 | } 201 | 202 | .wrapper .list-item .desc{ 203 | font-size: 12px; 204 | color: #b4b4b4; 205 | } 206 | 207 | .wrapper .btn-group{ 208 | width: 100%; 209 | padding: .2rem .1rem; 210 | } 211 | 212 | .wrapper .btn-group .btn{ 213 | display: inline-block; 214 | outline: none; 215 | border: none; 216 | width: 1.26rem; 217 | height: .44rem; 218 | border-radius: 5%; 219 | font-size: 10px; 220 | line-height: .44rem; 221 | } 222 | 223 | .wrapper .btn-group .detail{ 224 | border: 1px solid rgb(0, 160, 220); 225 | color: rgb(0, 160, 220); 226 | } 227 | 228 | .wrapper .btn-group .vote{ 229 | background: rgb(0, 160, 220); 230 | color: #fff; 231 | } 232 | 233 | .loading{ 234 | width: 100px; 235 | height: 2rem; 236 | text-align: center; 237 | margin: 0 auto; 238 | } 239 | 240 | .loading img{ 241 | width: 2rem; 242 | } 243 | 244 | .bottom{ 245 | display: none; 246 | text-align: center; 247 | width: 4rem; 248 | height: .2rem; 249 | color: gray; 250 | font-size: 10px; 251 | margin: -0.1rem auto; 252 | } 253 | 254 | .bottom .line{ 255 | vertical-align: middle; 256 | display: inline-block; 257 | width: 30%; 258 | height: 1px; 259 | background: gray; 260 | } 261 | -------------------------------------------------------------------------------- /demo3/images/200.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo3/images/200.gif -------------------------------------------------------------------------------- /demo3/images/header-border.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo3/images/header-border.png -------------------------------------------------------------------------------- /demo3/images/header_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo3/images/header_bg.png -------------------------------------------------------------------------------- /demo3/images/person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo3/images/person.png -------------------------------------------------------------------------------- /demo3/images/person_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo3/images/person_1.png -------------------------------------------------------------------------------- /demo3/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | vote waterfall flow 8 | 9 | 10 | 11 |
    12 |
    13 | 评选时间:2015年6月 14 |
    15 |
    16 |
    2015浙江在线优秀员工评选
    17 |
    2015 THE LIST OF THE GOOD EMPLOYEES
    18 |
    19 |
    20 | 34 |
    35 | 第一轮投票剩余时间:3天23小时15分钟59秒 36 |
    37 |
    38 |
    39 |
    40 |
    41 | arrow
    42 |
    43 |
    44 |
    45 | loading 46 |
    47 |
      48 |
    49 |
    50 | 51 | 我是底线 52 | 53 |
    54 |
    55 | loading 56 |
    57 |
    58 |
    59 | 60 | 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /demo3/js/index.js: -------------------------------------------------------------------------------- 1 | import BScroll from 'better-scroll'; 2 | import Promise from 'es6-promise'; 3 | 4 | 5 | (function ($, win, doc){ 6 | const index = { 7 | config: { 8 | base_url: 'http://www.lhbzimo.cn:3001/', 9 | list_number: 0 10 | }, 11 | data: { 12 | page: 1, 13 | next: false, 14 | status: 'ready', 15 | }, 16 | init: function(){ 17 | const _self = this; 18 | 19 | 20 | _self._initConfig(); 21 | _self._initScroll(); 22 | _self.operations = _self.createOperations(); 23 | 24 | 25 | _self.load(_self.initHtml); 26 | _self.bind(); 27 | }, 28 | _initConfig: function(){ 29 | const _self = this; 30 | const defaultListWidth = 320; 31 | const clientWidth = win.innerWidth || doc.documentElement.clientWidth; 32 | if(defaultListWidth > 750){ 33 | _self.config['list_number'] = Math.floor(clientWidth / defaultListWidth); 34 | }else{ 35 | _self.config['list_number'] = 2; 36 | } 37 | }, 38 | _initScroll: function(){ 39 | const _self = this; 40 | const wrapper = document.getElementById('wrapper'); 41 | const options = { 42 | probeType: 1, 43 | click: true, 44 | scrollbar: false, 45 | bounduceTime: 2000 46 | }; 47 | _self.scroll = new BScroll(wrapper, options); 48 | }, 49 | bind: function(){ 50 | const _self = this; 51 | _self.scroll.on('touchEnd', function(position){ 52 | if(position.y < _self.scroll.maxScrollY - 20){ 53 | _self.more(); 54 | }else if(position.y > 80){ 55 | _self.update(_self.initHtml); 56 | } 57 | }); 58 | _self.scroll.on('scroll', function(position){ 59 | if(position.y > 80){ 60 | _self.operations.up(); 61 | }else{ 62 | _self.operations.down(); 63 | } 64 | }); 65 | }, 66 | fetch: function(url){ 67 | return new Promise((resolve, reject) => { 68 | $.ajax({ 69 | url: url, 70 | type: 'GET', 71 | dataType: 'json', 72 | data: {}, 73 | success: function(data){ 74 | resolve(data); 75 | }, 76 | error: function(){ 77 | reject('request timeout'); 78 | } 79 | }); 80 | }); 81 | }, 82 | load: function(fn){ 83 | const _self = this; 84 | const url = _self.config.base_url + _self.data.page; 85 | _self.operations.bShow(); 86 | _self.scroll.refresh(); 87 | return _self.fetch(url).then(data => { 88 | setTimeout(() => { 89 | _self.operations.bHide(); 90 | _self.data.next = data.next; 91 | if(!data.next){ 92 | _self.bottomLine(); 93 | } 94 | _self.data.page++; 95 | fn.call(_self, data.data); 96 | _self.data.status = 'ready'; 97 | }, 500); 98 | setTimeout(() => { 99 | _self.scroll.refresh(); 100 | }, 600); 101 | }, err => { 102 | console.log(err); 103 | }).catch(e => console.log(e)); 104 | }, 105 | update: function(fn){ 106 | const _self = this; 107 | const url = _self.config.base_url + 'update/' + (_self.data.page - 1); 108 | _self.operations.tShow(); 109 | _self.operations.aHide(); 110 | return _self.fetch(url).then(data => { 111 | setTimeout(() => { 112 | _self.operations.tHide(); 113 | _self.operations.aShow(); 114 | _self.data.next = data.next; 115 | fn.call(_self, data.data); 116 | }, 500); 117 | setTimeout(() => { 118 | _self.scroll.refresh(); 119 | _self.data.status = 'ready'; 120 | }, 600); 121 | }, er => { 122 | console.log(err); 123 | }).catch(e => console.log(e)); 124 | }, 125 | templ: function(data){ //div template 126 | const block = doc.createElement('div'); 127 | block.className = 'list-item'; 128 | const value = ` 129 | person-image 130 |
    ${data.name}
    131 |
    132 | 编号: ${data.id} 133 | ${data.vote} 134 |
    135 |
    136 | ${data.desc} 137 |
    138 |
    139 | 140 | 141 |
    `; 142 | block.innerHTML = value; 143 | return block; 144 | }, 145 | setHtml: function(data){ 146 | const _self = this; 147 | const fragments = _self.setFragements(data); 148 | $('.list-wrapper').each((index, item) => { 149 | $(item).append(fragments[index]); 150 | }); 151 | }, 152 | initHtml: function(data){ //initial html template 153 | const _self = this; 154 | const fragment = doc.createDocumentFragment(); 155 | const fragments = _self.setFragements(data); 156 | fragments.forEach((item, index) => { 157 | const listItem = doc.createElement('li'); 158 | listItem.className = 'list-wrapper'; 159 | listItem.appendChild(item); 160 | fragment.appendChild(listItem); 161 | }); 162 | $('.wrapper').html(fragment); 163 | }, 164 | setFragements: function(data){ //generate some fragement 165 | const _self = this; 166 | const count = _self.config['list_number']; 167 | const fragments = _self.getFragments(count); 168 | data.forEach((item, index) => { 169 | const i = index % count; 170 | const block = _self.templ(item); 171 | fragments[i].appendChild(block); 172 | }); 173 | return fragments; 174 | }, 175 | getFragments: function(num){ 176 | const arr = []; 177 | for(let i = 0; i < num; i++){ 178 | arr.push(doc.createDocumentFragment()); 179 | } 180 | return arr; 181 | }, 182 | more: function(){ 183 | const _self = this; 184 | let status = _self.data.status; 185 | if(_self.data.next){ 186 | if(status === 'ready'){ 187 | _self.data.status = 'pending'; 188 | _self.load(_self.setHtml); 189 | } 190 | } 191 | }, 192 | refresh: function(){ 193 | const _self = this; 194 | let status = _self.data.status; 195 | if(status == 'ready'){ 196 | _self.data.status = 'pending'; 197 | _self.update(_self.initHtml); 198 | } 199 | }, 200 | createOperations: function(){ 201 | const _self = this; 202 | let bottomloading = null; 203 | let toploading = null; 204 | let arrow = null; 205 | 206 | if(!arrow){ 207 | arrow = document.getElementById('arrow'); 208 | } 209 | 210 | 211 | if(!toploading){ 212 | toploading = document.getElementById('toploading'); 213 | } 214 | 215 | if(!bottomloading){ 216 | bottomloading = document.getElementById('loading'); 217 | } 218 | 219 | function bShow(){ 220 | bottomloading.style.display = 'block'; 221 | } 222 | 223 | function bHide(){ 224 | bottomloading.style.display = 'none'; 225 | } 226 | 227 | function tShow(){ 228 | toploading.style.display = 'block'; 229 | } 230 | 231 | function tHide(){ 232 | toploading.style.display = 'none'; 233 | } 234 | 235 | function up(){ 236 | if(arrow.className.indexOf('arrow_up') == -1){ 237 | arrow.className += ' arrow_up'; 238 | } 239 | } 240 | 241 | function down(){ 242 | if(arrow.className.indexOf('arrow_up') !== -1){ 243 | const arr = arrow.className.split(' '); 244 | arr.pop(); 245 | arrow.className = arr.join(''); 246 | } 247 | } 248 | 249 | function aShow(){ 250 | arrow.style.display = 'block'; 251 | } 252 | 253 | function aHide(){ 254 | arrow.style.display = 'none'; 255 | } 256 | 257 | return { bShow, bHide, tShow, tHide, up, down, aShow, aHide }; 258 | }, 259 | bottomLine: function(){ 260 | const bottom = document.getElementById('bottom'); 261 | bottom.style.display = 'block'; 262 | } 263 | }; 264 | 265 | index.init(); 266 | })(jQuery, window, document) -------------------------------------------------------------------------------- /demo3/js/rem.js: -------------------------------------------------------------------------------- 1 | // (function(win, doc){ 2 | // const docEl = doc.documentElement; 3 | // const resEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'; 4 | // const reclac = function(){ 5 | // if(!docEl.clientWidth) return; 6 | // const width = docEl.clientWidth; 7 | 8 | // if(width > 750) docEl.style.fontSize = '100px'; 9 | // else docEl.style.fontSize = width / 6.4 + 'px'; 10 | // } 11 | 12 | // if(doc.addEventListener){ 13 | // win.addEventListener(resEvt, reclac, false); 14 | // doc.addEventListener('DOMCententLoaded', reclac, false); 15 | // } 16 | // })(window, document); 17 | 18 | (function (doc, win) { 19 | var docEl = doc.documentElement, 20 | resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize', 21 | 22 | recalc = function () { 23 | var clientWidth = docEl.clientWidth; 24 | if (!clientWidth) return; 25 | if(clientWidth > 750){ //针对移动版的页面控制在750px内 26 | docEl.style.fontSize = '100px'; 27 | } 28 | if(clientWidth <750){ 29 | // docEl.style.fontSize = 20 * (clientWidth / 320) + 'px'; 30 | docEl.style.fontSize = clientWidth/ 6.4+ 'px'; 31 | 32 | } 33 | 34 | 35 | }; 36 | if (!doc.addEventListener) return; 37 | win.addEventListener(resizeEvt, recalc, false); 38 | doc.addEventListener('DOMContentLoaded', recalc, false); 39 | })(document, window); -------------------------------------------------------------------------------- /demo3/mock/mock.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": [ 3 | { 4 | "data": [ 5 | { 6 | "image": "./images/person.png", 7 | "name": "小明", 8 | "id": "001", 9 | "vote": "1795", 10 | "desc": "该员工工作认真负责,工作认真负责。" 11 | }, 12 | { 13 | "image": "./images/person_1.png", 14 | "name": "小明", 15 | "id": "001", 16 | "vote": "1795", 17 | "desc": "该员工工作认真负责,工作认真负责。" 18 | }, 19 | { 20 | "image": "./images/person.png", 21 | "name": "小明", 22 | "id": "001", 23 | "vote": "1795", 24 | "desc": "该员工工作认真负责,工作认真负责。" 25 | }, 26 | { 27 | "image": "./images/person.png", 28 | "name": "小明", 29 | "id": "001", 30 | "vote": "1795", 31 | "desc": "该员工工作认真负责,工作认真负责。" 32 | }, 33 | { 34 | "image": "./images/person_1.png", 35 | "name": "小明", 36 | "id": "001", 37 | "vote": "1795", 38 | "desc": "该员工工作认真负责,工作认真负责。" 39 | }, 40 | { 41 | "image": "./images/person.png", 42 | "name": "小明", 43 | "id": "001", 44 | "vote": "1795", 45 | "desc": "该员工工作认真负责,工作认真负责。" 46 | }, 47 | { 48 | "image": "./images/person_1.png", 49 | "name": "小明", 50 | "id": "001", 51 | "vote": "1795", 52 | "desc": "该员工工作认真负责,工作认真负责。" 53 | }, 54 | { 55 | "image": "./images/person.png", 56 | "name": "小明", 57 | "id": "001", 58 | "vote": "1795", 59 | "desc": "该员工工作认真负责,工作认真负责。" 60 | } 61 | ], 62 | "page": 1 63 | }, 64 | { 65 | "data": [ 66 | { 67 | "image": "./images/person_1.png", 68 | "name": "小明", 69 | "id": "001", 70 | "vote": "1795", 71 | "desc": "该员工工作认真负责,工作认真负责。" 72 | }, 73 | { 74 | "image": "./images/person.png", 75 | "name": "小明", 76 | "id": "001", 77 | "vote": "1795", 78 | "desc": "该员工工作认真负责,工作认真负责。" 79 | }, 80 | { 81 | "image": "./images/person.png", 82 | "name": "小明", 83 | "id": "001", 84 | "vote": "1795", 85 | "desc": "该员工工作认真负责,工作认真负责。" 86 | }, 87 | { 88 | "image": "./images/person_1.png", 89 | "name": "小明", 90 | "id": "001", 91 | "vote": "1795", 92 | "desc": "该员工工作认真负责,工作认真负责。" 93 | }, 94 | { 95 | "image": "./images/person_1.png", 96 | "name": "小明", 97 | "id": "001", 98 | "vote": "1795", 99 | "desc": "该员工工作认真负责,工作认真负责。" 100 | }, 101 | { 102 | "image": "./images/person.png", 103 | "name": "小明", 104 | "id": "001", 105 | "vote": "1795", 106 | "desc": "该员工工作认真负责,工作认真负责。" 107 | }, 108 | { 109 | "image": "./images/person_1.png", 110 | "name": "小明", 111 | "id": "001", 112 | "vote": "1795", 113 | "desc": "该员工工作认真负责,工作认真负责。" 114 | }, 115 | { 116 | "image": "./images/person.png", 117 | "name": "小明", 118 | "id": "001", 119 | "vote": "1795", 120 | "desc": "该员工工作认真负责,工作认真负责。" 121 | } 122 | ], 123 | "page": 2 124 | }, 125 | { 126 | "data": [ 127 | { 128 | "image": "./images/person.png", 129 | "name": "小明", 130 | "id": "001", 131 | "vote": "1795", 132 | "desc": "该员工工作认真负责,工作认真负责。" 133 | }, 134 | { 135 | "image": "./images/person_1.png", 136 | "name": "小明", 137 | "id": "001", 138 | "vote": "1795", 139 | "desc": "该员工工作认真负责,工作认真负责。" 140 | }, 141 | { 142 | "image": "./images/person_1.png", 143 | "name": "小明", 144 | "id": "001", 145 | "vote": "1795", 146 | "desc": "该员工工作认真负责,工作认真负责。" 147 | }, 148 | { 149 | "image": "./images/person_1.png", 150 | "name": "小明", 151 | "id": "001", 152 | "vote": "1795", 153 | "desc": "该员工工作认真负责,工作认真负责。" 154 | }, 155 | { 156 | "image": "./images/person.png", 157 | "name": "小明", 158 | "id": "001", 159 | "vote": "1795", 160 | "desc": "该员工工作认真负责,工作认真负责。" 161 | }, 162 | { 163 | "image": "./images/person.png", 164 | "name": "小明", 165 | "id": "001", 166 | "vote": "1795", 167 | "desc": "该员工工作认真负责,工作认真负责。" 168 | }, 169 | { 170 | "image": "./images/person_1.png", 171 | "name": "小明", 172 | "id": "001", 173 | "vote": "1795", 174 | "desc": "该员工工作认真负责,工作认真负责。" 175 | }, 176 | { 177 | "image": "./images/person.png", 178 | "name": "小明", 179 | "id": "001", 180 | "vote": "1795", 181 | "desc": "该员工工作认真负责,工作认真负责。" 182 | } 183 | ], 184 | "page": 3 185 | } 186 | ] 187 | } -------------------------------------------------------------------------------- /demo3/mock/update.json: -------------------------------------------------------------------------------- 1 | { 2 | "data": [ 3 | { 4 | "data": [ 5 | { 6 | "image": "./images/person.png", 7 | "name": "小明", 8 | "id": "001", 9 | "vote": 2000, 10 | "desc": "该员工工作认真负责,工作认真负责。" 11 | }, 12 | { 13 | "image": "./images/person_1.png", 14 | "name": "小明", 15 | "id": "001", 16 | "vote": 3000, 17 | "desc": "该员工工作认真负责,工作认真负责。" 18 | }, 19 | { 20 | "image": "./images/person.png", 21 | "name": "小明", 22 | "id": "001", 23 | "vote": 3001, 24 | "desc": "该员工工作认真负责,工作认真负责。" 25 | }, 26 | { 27 | "image": "./images/person.png", 28 | "name": "小明", 29 | "id": "001", 30 | "vote": 500, 31 | "desc": "该员工工作认真负责,工作认真负责。" 32 | }, 33 | { 34 | "image": "./images/person_1.png", 35 | "name": "小明", 36 | "id": "001", 37 | "vote": 2500, 38 | "desc": "该员工工作认真负责,工作认真负责。" 39 | }, 40 | { 41 | "image": "./images/person.png", 42 | "name": "小明", 43 | "id": "001", 44 | "vote": 2399, 45 | "desc": "该员工工作认真负责,工作认真负责。" 46 | }, 47 | { 48 | "image": "./images/person_1.png", 49 | "name": "小明", 50 | "id": "001", 51 | "vote": 2780, 52 | "desc": "该员工工作认真负责,工作认真负责。" 53 | }, 54 | { 55 | "image": "./images/person.png", 56 | "name": "小明", 57 | "id": "001", 58 | "vote": 2520, 59 | "desc": "该员工工作认真负责,工作认真负责。" 60 | } 61 | ], 62 | "page": 1 63 | }, 64 | { 65 | "data": [ 66 | { 67 | "image": "./images/person_1.png", 68 | "name": "小明", 69 | "id": "001", 70 | "vote": 6666, 71 | "desc": "该员工工作认真负责,工作认真负责。" 72 | }, 73 | { 74 | "image": "./images/person.png", 75 | "name": "小明", 76 | "id": "001", 77 | "vote": 6565, 78 | "desc": "该员工工作认真负责,工作认真负责。" 79 | }, 80 | { 81 | "image": "./images/person.png", 82 | "name": "小明", 83 | "id": "001", 84 | "vote": 5455, 85 | "desc": "该员工工作认真负责,工作认真负责。" 86 | }, 87 | { 88 | "image": "./images/person_1.png", 89 | "name": "小明", 90 | "id": "001", 91 | "vote": 5730, 92 | "desc": "该员工工作认真负责,工作认真负责。" 93 | }, 94 | { 95 | "image": "./images/person_1.png", 96 | "name": "小明", 97 | "id": "001", 98 | "vote": 5110, 99 | "desc": "该员工工作认真负责,工作认真负责。" 100 | }, 101 | { 102 | "image": "./images/person.png", 103 | "name": "小明", 104 | "id": "001", 105 | "vote": 5230, 106 | "desc": "该员工工作认真负责,工作认真负责。" 107 | }, 108 | { 109 | "image": "./images/person_1.png", 110 | "name": "小明", 111 | "id": "001", 112 | "vote": "1795", 113 | "desc": "该员工工作认真负责,工作认真负责。" 114 | }, 115 | { 116 | "image": "./images/person.png", 117 | "name": "小明", 118 | "id": "001", 119 | "vote": "1795", 120 | "desc": "该员工工作认真负责,工作认真负责。" 121 | } 122 | ], 123 | "page": 2 124 | }, 125 | { 126 | "data": [ 127 | { 128 | "image": "./images/person.png", 129 | "name": "小明", 130 | "id": "001", 131 | "vote": "1795", 132 | "desc": "该员工工作认真负责,工作认真负责。" 133 | }, 134 | { 135 | "image": "./images/person_1.png", 136 | "name": "小明", 137 | "id": "001", 138 | "vote": "1795", 139 | "desc": "该员工工作认真负责,工作认真负责。" 140 | }, 141 | { 142 | "image": "./images/person_1.png", 143 | "name": "小明", 144 | "id": "001", 145 | "vote": "1795", 146 | "desc": "该员工工作认真负责,工作认真负责。" 147 | }, 148 | { 149 | "image": "./images/person_1.png", 150 | "name": "小明", 151 | "id": "001", 152 | "vote": "1795", 153 | "desc": "该员工工作认真负责,工作认真负责。" 154 | }, 155 | { 156 | "image": "./images/person.png", 157 | "name": "小明", 158 | "id": "001", 159 | "vote": "1795", 160 | "desc": "该员工工作认真负责,工作认真负责。" 161 | }, 162 | { 163 | "image": "./images/person.png", 164 | "name": "小明", 165 | "id": "001", 166 | "vote": "1795", 167 | "desc": "该员工工作认真负责,工作认真负责。" 168 | }, 169 | { 170 | "image": "./images/person_1.png", 171 | "name": "小明", 172 | "id": "001", 173 | "vote": "1795", 174 | "desc": "该员工工作认真负责,工作认真负责。" 175 | }, 176 | { 177 | "image": "./images/person.png", 178 | "name": "小明", 179 | "id": "001", 180 | "vote": "1795", 181 | "desc": "该员工工作认真负责,工作认真负责。" 182 | } 183 | ], 184 | "page": 3 185 | } 186 | ] 187 | } -------------------------------------------------------------------------------- /demo3/mock/vote.js: -------------------------------------------------------------------------------- 1 | const Express = require('express'); 2 | const app = new Express(); 3 | const path = require('path'); 4 | const fs = require('fs'); 5 | 6 | app.get('/:id', function(req, res){ 7 | const page = req.params.id; 8 | res.setHeader("Access-Control-Allow-Origin", "*"); 9 | // console.log(page); 10 | fs.readFile(path.resolve(__dirname, 'mock.json'), function(err, data){ 11 | if(err){ 12 | throw err; 13 | } 14 | const static = JSON.parse(data).data; 15 | const arr = Array.from(static); 16 | const len = arr.length; 17 | const next = page - 0 + 1 <= len ? true : false; 18 | for(let value of arr){ 19 | if(value.page == page){ 20 | res.json({data: value.data, next: next}); 21 | } 22 | } 23 | }); 24 | }); 25 | 26 | app.get('/update/:id', function(req, res){ 27 | const page = req.params.id; 28 | res.setHeader('Access-Control-Allow-Origin', '*'); 29 | fs.readFile(path.resolve(__dirname, 'update.json'), function(err, data){ 30 | if(err){ 31 | throw err; 32 | } 33 | const static = JSON.parse(data).data; 34 | const arr = Array.from(static); 35 | const next = page - 0 + 1 <= arr.length ? true : false; 36 | let result = []; 37 | for(let value of arr){ 38 | if(value.page <= page){ 39 | result = result.concat(value.data); 40 | } 41 | } 42 | res.json({data: result, next: next}); 43 | }); 44 | }); 45 | 46 | app.listen(3001); -------------------------------------------------------------------------------- /demo3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "vote", 3 | "version": "1.0.0", 4 | "main": "index.js", 5 | "scripts": { 6 | "test": "echo \"Error: no test specified\" && exit 1", 7 | "start": "webpack-dev-server -p", 8 | "build": "webpack -p" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "babel": "^6.23.0", 15 | "babel-core": "^6.26.0", 16 | "babel-loader": "^7.1.2", 17 | "babel-preset-es2015": "^6.24.1", 18 | "better-scroll": "^1.2.3", 19 | "es6-promise": "^4.1.1", 20 | "express": "^4.15.4", 21 | "jquery": "^3.2.1", 22 | "webpack": "^3.5.5", 23 | "webpack-dev-server": "^2.7.1" 24 | }, 25 | "devDependencies": {}, 26 | "description": "" 27 | } 28 | -------------------------------------------------------------------------------- /demo3/webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | entry: './js/index.js', 5 | 6 | output: { 7 | path: path.resolve(__dirname, 'dist'), 8 | filename: 'bundle.js', 9 | publicPath: '/dist' 10 | }, 11 | 12 | module: { 13 | rules: [ 14 | { 15 | test: /\.js$/, 16 | exclude: /node_modules/, 17 | use: [ 18 | { 19 | loader: 'babel-loader', 20 | options: { 21 | presets: ['es2015'] 22 | } 23 | } 24 | ] 25 | } 26 | ] 27 | } 28 | } -------------------------------------------------------------------------------- /demo4/.gitignore: -------------------------------------------------------------------------------- 1 | # node_modules 2 | /node_modules/ 3 | /.vscode/ 4 | -------------------------------------------------------------------------------- /demo4/README.md: -------------------------------------------------------------------------------- 1 | # 模版生成类静态页面 2 | 3 | 通过node来mock数据,然后将数据放入表单中,以及微信端的适配工作。 4 | 5 | ## demo地址 6 | 7 | [项目地址](http://www.lhbzimo.cn:3111/index.html) 8 | 9 | ## 项目二维码 10 | 11 | ![二维码](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/1506389333.png) 12 | 13 | ## 效果图 14 | 15 | ![效果图](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/demo4.jpg) 16 | -------------------------------------------------------------------------------- /demo4/css/index.css: -------------------------------------------------------------------------------- 1 | * { 2 | padding: 0; 3 | margin: 0; 4 | } 5 | .container{ 6 | width: 100%; 7 | overflow: hidden; 8 | position: relative; 9 | } 10 | 11 | table{ 12 | width: 100%; 13 | border-collapse: collapse; 14 | } 15 | 16 | table tr:first-child{ 17 | width: 100%; 18 | height: 150px; 19 | border-bottom: 1px solid #f3f5f7; 20 | } 21 | 22 | table tr:first-child td:last-child{ 23 | vertical-align: top; 24 | padding-top: 10px; 25 | } 26 | 27 | table tr:first-child td:last-child p{ 28 | height: 20px; 29 | line-height: 20px; 30 | } 31 | 32 | tr{ 33 | width: 100%; 34 | border-bottom: 1px solid #f3f5f7; 35 | height: 40px; 36 | font-size: 12px; 37 | /* border-collapse: separate; */ 38 | } 39 | 40 | td{ 41 | padding-left: 10px; 42 | } 43 | 44 | tr td:last-child{ 45 | width: 60%; 46 | font-weight: 700; 47 | } -------------------------------------------------------------------------------- /demo4/data.json: -------------------------------------------------------------------------------- 1 | { 2 | "code":0, 3 | "data":{ 4 | "officer":{ 5 | "id":1, 6 | "name":"车俊", 7 | "gender":"男", 8 | "hometown":"安徽巢湖", 9 | "nation":"汉", 10 | "university":"中央党校", 11 | "degree":"中央党校大学学历", 12 | "title":"省委书记", 13 | "birthday":150000000000, 14 | "ccp_date":150000000000, 15 | "work_date":150000000000, 16 | "description":"官员简介说明", 17 | "photo":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBwgHBgkIBwgKCgkLDRYPDQwMDRsUFRAWIB0iIiAdHx8kKDQsJCYxJx8fLT0tMTU3Ojo6Iys/RD84QzQ5OjcBCgoKDQwNGg8PGjclHyU3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3N//AABEIAHsAcAMBIgACEQEDEQH/xAAcAAACAwEBAQEAAAAAAAAAAAAABgMEBQcCAQj/xAA3EAACAQMBBQYFAgQHAAAAAAABAgMABBEFEiExQVEGE2FxgaEHIjKRsRTwFULC0SMzQ1LB4fH/xAAZAQACAwEAAAAAAAAAAAAAAAAAAwECBAX/xAAgEQACAgMAAgMBAAAAAAAAAAAAAQIRAyExEhMEIkEy/9oADAMBAAIRAxEAPwDuNFFFABRRRQAUVDc3MNrGXncKorCl7SrKxWyiJI/3DefSquaXS0YOXBjopeXUrzuyZZFBx/Ko3eteIO0YVgk+yfHaB/FU90S3qkMlFUrLU7W8AEUg2ulXaYmnwo010KKKKkgKKKKACiiigAqC7uY7WBpZSAqjnU9L+v7Vxdpbj6Y12z61ScvFWWhHydGRcyS6vc7LZI2+HgM/v1r1JG9tNtwlFIXALDOccvCtLS449mZod5O7aP78q+z2w2cEZ61jbfTYqujAm1aa7kKTlUC8BsDBNYt8hBMkhwDvGTTNdWi7OdkCseez7wMCxIPjVbb6OUEuGJa6leWcpns2U/NnBYg+tdT7Oar/ABXTIrh12ZSvzLnnXK7/AEl4wZYcllBIGTitXslqjxXlqveMI8kspPLnn3+1MxT8WKzY00dUoryjBlDA5BGRXqtpgCiiigAooooAKX75GN/M3DO4eQFMFY2rqFuFfOAykHrnd/1Ssy+o3F/QaZCI7bZHXJqadRivagRQjpjpVG61JIWxLDKAdwOzSKSQ5W5WirdcCKy5xs8BWlKxky6o2zjO8Vh6nqcEB2cF3O4KtLNKI5DnIIpdlj7jU1aLIKyZx1BO8Vrx33eEd5bSRg89xqG7tsahA/JlO8fb+qiiXw6fo+3/AAqz7z6+5TPnirlRWw2YI1HJQPapa3rhy30KKKKkgKKKKACsS+Crd3HfSb5SgiTyH9z7Vt1n3toslwk+AWjIKk8utKzJuOhuJpS2fWBaPAJHj0pc13Sf1MsEqNkxhgQ2Tt567/8AjnTMByqrchYztngKS7odjezPtbZ7HQ+5dixVcZI9q5/qmlyTXXenLAEjBAIwfOulX7h7E7wNwyM8KUJZULZjIYZwRneKo1XDRjd2YunaMLeKJELLsD6s7z5/at6RQln3smT3fyEjln/yo2YKmQONTlO90yFHAKyT5IPMDl71Vu7L0k0Oug7Y0ezEjbTCIZbrV+q9hEYLOGI8UQA1YrfHSRy5O5MKKKKkqFFFFABXxlDDBGRX2igCs6BWwowMVBMqkAvwHWrU+7BqrMiyrh1DL0IyDWeenQ6DMvUrq3hjdO9h2m3EEik39bp0cjmOeIbR5sKdNSto+5IWFceWKUry2QSltgHfwxwpEjdjrxBmD4xw5U3dk4o5LHLxqxjf5SRw8qTEyXCBfICuh9n7cW2lwqCGLjbYjmTV8CuVivkyqNGjRRRWwwBRRRQAUUUUAFFRzzRW8TSzyJHGu9ndgAPU0mal8SNLjvP0WlRvfTZ+aQHZjXqc8T6CiwoaZL6FtQexB/xUiEjeRJA/H4r4ysu9N/hXNLfWrq77Q3d3G6rdOiSRIeDBMhk8sMPzTvo+u22pxZQlJBukib6kPQ1nydNEIutHnVrl1QDYYdd1KmoXilsQ4Y88U46wVNo5GCw4DrSa0QV8uAN9Z59NWN/Urwq5+aRvMchTj2J7Qw6xDdWqYDWTKqkH60KjDffPtXNO0ur7/wBFathP9RwePhSrpGuXem3kl1YzvDI5+pTjdwp2FOOxXyGpaP07RXENG+LOr2Uwi1WKG+hzukx3cmPMbvaum6D2z0XXFUW9yIp2H+TMQrZ8OR9K0poxuLQxUUUVJBg6j2u0ewJVpzM44iEZ9+FKOsfEmbDJp1tHEOTyHab7cB70i3EzEEnjWbcS4BNVbL+KL2ua5faqxl1S9keNd4DNuHkvAVDoMoaGWZIwiFtlMnJYDiTS/cs9xJs8qYrdRBBHENwUYqEST3N3JbPFd2+BNA22nQ9R6jI9aZ3uYrpINQ06RkMqBllXp0PjSfcMHXANRdi7+ay1h7Iyt+mZ9oRk7gTzqJK+l4uh/sO02pTbNvLp0s7kE5iGSAObdP34Uv65rdxcyN3BSJep4jyFP3ZU200GpPbshminWKQDivyBv6j9q5r27RLLV7hkIVJF7w+GeP4NL9aTsv7b0LtzcxhnRWd5WXJZuQPOs9W6V8gzJG0rZzKcjPIcBX1V30wW2eww2lVxlSPtVuEmP6GOKpyfKFbod9W1Hyg0EDJpHa7WNNAW2vpVUfysdpfsd1NunfFC8QqL61gnXmUyjf29q5jnAoD4NFkUjYuDhd9Zkw2s1p6juUYrOPGgCnGFinV3UsAc4HOtBLlpFJMTqCPqJFVJAO84VM+6GMcjvNSgLCnK76xr6d9O1SC9jBOycMufqHStWP6Ky9c3xLnrQyUP/wAFprie/wBduXclbuFZX3ZAcOR+CfQUsfE6Odu0L/OWiKIgXo28j8+xp3+BSKOzOquANprsqT4BFwPc/esXtvEj6nOXUE7j6jBFQH6JWwEwi8FAAr442ELgE44gV7P1VKg+UjwqSCgJXkBUR7j1NaMa7MSgnJA41nQ7pSOQNabfQPKoJZGTXgNlsfehuBqNP5qAP//Z", 18 | "list_pic":"http://www.123123.com/photo.png ", 19 | "resumes":[ 20 | { 21 | "year":2017, 22 | "month":7, 23 | "location":"杭州", 24 | "title":"职务" 25 | }, 26 | { 27 | "year":2017, 28 | "month":6, 29 | "location":"杭州", 30 | "title":"职务" 31 | } 32 | ] 33 | }, 34 | "article_list":[ 35 | {} 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /demo4/design.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo4/design.jpg -------------------------------------------------------------------------------- /demo4/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | News 8 | 9 | 10 | 11 | 12 |
    13 | 14 | 15 | -------------------------------------------------------------------------------- /demo4/js/index.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | const table = (function($, win){ 4 | var table = { 5 | config: { 6 | url: 'http://www.lhbzimo.cn:3111', 7 | }, 8 | init: function(){ 9 | const _self = this; 10 | console.log('exec'); 11 | _self.setData(); 12 | }, 13 | fetch: function(){ 14 | const _self = this; 15 | console.log(11); 16 | return new Promise((resolve, reject) => { 17 | const url = _self.config.url + '/api/person'; 18 | $.ajax({ 19 | url: url, 20 | type: 'GET', 21 | dataType: 'json', 22 | data: {}, 23 | success: function(response){ 24 | const res = JSON.parse(response); 25 | if(res["code"] == 0){ 26 | resolve(res.data); 27 | }else{ 28 | reject('code is error'); 29 | } 30 | }, 31 | error: function(){ 32 | reject('request timeout'); 33 | } 34 | }); 35 | }); 36 | }, 37 | setData: function(){ 38 | const _self = this; 39 | _self.fetch().then((data) => { 40 | _self.tepl(data); 41 | }, (err) => { 42 | console.log(err); 43 | }).catch((err) => { 44 | console.log(err); 45 | }); 46 | }, 47 | tepl: function(data){ 48 | const _self = this; 49 | const { name, hometown, nation, university, degree, title, birthday, ccp_date, work_date, photo } = data.officer; 50 | const tableContent = ` 51 | 52 | 53 | 54 | 55 | 56 |

    ${name}

    57 |

    ${title}

    58 | 59 | 60 | 61 | 籍贯 62 | ${nation} 63 | 64 | 65 | 民族 66 | ${hometown} 67 | 68 | 69 | 出生年月 70 | ${_self.getTime(birthday)} 71 | 72 | 73 | 入党时间 74 | ${_self.getTime(ccp_date)} 75 | 76 | 77 | 毕业院校 78 | ${university} 79 | 80 | 81 | 学历/学位 82 | ${degree} 83 | 84 | 85 | 参与工作时间 86 | ${_self.getTime(work_date)} 87 | 88 | `; 89 | const table = document.createElement('table'); 90 | table.innerHTML = tableContent; 91 | document.getElementsByClassName('container')[0].appendChild(table); 92 | }, 93 | getTime: function(time){ 94 | const date = new Date(time); 95 | return date.getFullYear() + '年' + date.getMonth() + '月'; 96 | } 97 | } 98 | return table; 99 | })(jQuery, window); 100 | 101 | table.init(); -------------------------------------------------------------------------------- /demo4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo4", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "nodemon mock.js" 9 | }, 10 | "keywords": [], 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "express": "^4.15.4", 15 | "fetch": "^1.1.0" 16 | }, 17 | "devDependencies": { 18 | "nodemon": "^1.12.1" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /demo4/person.js: -------------------------------------------------------------------------------- 1 | const express = require('express'); 2 | const fs = require('fs'); 3 | const path = require('path'); 4 | const app = express(); 5 | 6 | const route = express.Router(); 7 | 8 | app.use(express.static('./')); 9 | 10 | route.get('/api/person', function(req, res, next){ 11 | fs.readFile(path.resolve(__dirname, 'data.json'),'utf-8', function(err, data){ 12 | res.json(data); 13 | }); 14 | }); 15 | 16 | app.use(route); 17 | 18 | app.listen(3111); -------------------------------------------------------------------------------- /demo5/README.md: -------------------------------------------------------------------------------- 1 | # 自适应页面 2 | 3 | ### 介绍 4 | 5 | 这个项目是一个利用媒体查询的demo,你可以在PC端下看到一个布局完美的页面,同时转换到移动端下,依然可以完美布局 6 | 7 | 主要部分的css代码 8 | 9 | ```css 10 | @media screen and (min-width: 750px){ 11 | //... 12 | } 13 | 14 | @media screen and (max-width: 750px){ 15 | //... 16 | } 17 | ``` 18 | 19 | ### 项目地址 20 | 21 | [demo地址](http://www.lhbzimo.cn/demo5/index.html) 22 | 23 | **二维码:** 24 | 25 | ![二维码](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/demo5-erwaima.png) 26 | 27 | **效果图** 28 | 29 | ![pc端](http://lhbzimo.oss-cn-shenzhen.aliyuncs.com/pc-demo5.png) 30 | 31 | 32 | -------------------------------------------------------------------------------- /demo5/css/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/css/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /demo5/css/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/css/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /demo5/css/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/css/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /demo5/css/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/css/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /demo5/css/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/css/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /demo5/css/index.css: -------------------------------------------------------------------------------- 1 | *{ 2 | padding: 0; 3 | margin:0; 4 | } 5 | 6 | html,body{ 7 | height: 100%; 8 | } 9 | 10 | @media screen and (min-width: 750px){ 11 | .header{ 12 | position: absolute; 13 | width: 100%; 14 | height: 80px; 15 | background: rgb(209, 14, 38); 16 | display: flex; 17 | align-items: center; 18 | justify-content: center; 19 | min-width: 1000px; 20 | border-bottom: 1px solid rgba(255, 255, 255, 0.1); 21 | } 22 | 23 | .header .logo{ 24 | flex: 0 0 80px; 25 | height: 50%; 26 | background: url('../images/logo.png') no-repeat; 27 | } 28 | 29 | .header .arrow_left{ 30 | margin-left: 20px; 31 | color: rgba(174, 10, 41, 0.9); 32 | } 33 | 34 | .header .nav{ 35 | flex: 0 0 800px; 36 | height: 100%; 37 | list-style: none; 38 | display: flex; 39 | margin: 0 20px; 40 | } 41 | 42 | .header .nav .nav-item{ 43 | flex: 0 0 80px; 44 | height: 100%; 45 | text-align: center; 46 | color: #fff; 47 | line-height: 80px; 48 | } 49 | 50 | .header .arrow_right{ 51 | color: rgba(174, 10, 41, 0.9); 52 | } 53 | 54 | .header .nav .active{ 55 | background: rgba(174, 10, 41, 0.9); 56 | } 57 | 58 | .header .mobile{ 59 | display: none; 60 | } 61 | 62 | .content{ 63 | min-width: 1000px; 64 | width: 100%; 65 | height: 100%; 66 | background: #f3f5f7; 67 | } 68 | .content .tips{ 69 | display: block; 70 | margin: 0 auto; 71 | position: relative; 72 | top: 50%; 73 | transform: translateY(-50%); 74 | text-align: center; 75 | } 76 | 77 | .content .tips img{ 78 | width: 100px; 79 | height: 80px; 80 | display: block; 81 | margin: 0 auto; 82 | margin-bottom: 20px; 83 | } 84 | 85 | .content .tips span{ 86 | font-size: 12px; 87 | } 88 | } 89 | 90 | @media screen and (max-width: 750px){ 91 | .header{ 92 | width: 100%; 93 | height: 40px; 94 | position: absolute; 95 | } 96 | 97 | .header .arrow_left,.arrow_right{ 98 | display: none; 99 | } 100 | 101 | .header .nav{ 102 | list-style: none; 103 | display: flex; 104 | background: #f3f5f7; 105 | } 106 | 107 | .header .nav .nav-item{ 108 | flex: 0 0 30px; 109 | /* width: 40px; */ 110 | height: 100%; 111 | line-height: 40px; 112 | margin-left: 10px; 113 | font-size: 12px; 114 | } 115 | 116 | .header .nav .active{ 117 | color: rgb(209, 14, 38); 118 | } 119 | 120 | .header .pc{ 121 | display: none; 122 | } 123 | 124 | .header .nav .icon-plus{ 125 | font-size: 16px; 126 | line-height: 40px; 127 | color: #999; 128 | flex: 0 0 40px; 129 | text-align: center 130 | } 131 | 132 | .content{ 133 | width: 100%; 134 | height: 100%; 135 | } 136 | 137 | .tips{ 138 | position: relative; 139 | top: 50%; 140 | transform: translateY(-50%); 141 | text-align: center; 142 | } 143 | 144 | .tips img{ 145 | width: 50px; 146 | height: 40px; 147 | display: block; 148 | margin: 0 auto; 149 | margin-bottom: 20px; 150 | } 151 | 152 | .tips span{ 153 | font-size: 10px; 154 | 155 | } 156 | } -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/HELP-US-OUT.txt: -------------------------------------------------------------------------------- 1 | I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, 2 | Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, 3 | comprehensive icon sets or copy and paste your own. 4 | 5 | Please. Check it out. 6 | 7 | -Dave Gandy 8 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/font-awesome-4.7.0/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .@{fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em @fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix} { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .@{fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/font-awesome.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables.less"; 7 | @import "mixins.less"; 8 | @import "path.less"; 9 | @import "core.less"; 10 | @import "larger.less"; 11 | @import "fixed-width.less"; 12 | @import "list.less"; 13 | @import "bordered-pulled.less"; 14 | @import "animated.less"; 15 | @import "rotated-flipped.less"; 16 | @import "stacked.less"; 17 | @import "icons.less"; 18 | @import "screen-reader.less"; 19 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/larger.less: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .@{fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .@{fa-css-prefix}-2x { font-size: 2em; } 11 | .@{fa-css-prefix}-3x { font-size: 3em; } 12 | .@{fa-css-prefix}-4x { font-size: 4em; } 13 | .@{fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: @fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .@{fa-css-prefix}-li { 11 | position: absolute; 12 | left: -@fa-li-width; 13 | width: @fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.@{fa-css-prefix}-lg { 17 | left: (-@fa-li-width + (4em / 14)); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/mixins.less: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | .fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | .fa-icon-rotate(@degrees, @rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; 16 | -webkit-transform: rotate(@degrees); 17 | -ms-transform: rotate(@degrees); 18 | transform: rotate(@degrees); 19 | } 20 | 21 | .fa-icon-flip(@horiz, @vert, @rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; 23 | -webkit-transform: scale(@horiz, @vert); 24 | -ms-transform: scale(@horiz, @vert); 25 | transform: scale(@horiz, @vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | .sr-only() { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | .sr-only-focusable() { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/path.less: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}'); 7 | src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'), 8 | url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'), 9 | url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), 10 | url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), 11 | url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/rotated-flipped.less: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); } 5 | .@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); } 6 | .@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); } 7 | 8 | .@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); } 9 | .@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .@{fa-css-prefix}-rotate-90, 15 | :root .@{fa-css-prefix}-rotate-180, 16 | :root .@{fa-css-prefix}-rotate-270, 17 | :root .@{fa-css-prefix}-flip-horizontal, 18 | :root .@{fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/stacked.less: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .@{fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .@{fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .@{fa-css-prefix}-inverse { color: @fa-inverse; } 21 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/less/variables.less: -------------------------------------------------------------------------------- 1 | // Variables 2 | // -------------------------- 3 | 4 | @fa-font-path: "../fonts"; 5 | @fa-font-size-base: 14px; 6 | @fa-line-height-base: 1; 7 | //@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly 8 | @fa-css-prefix: fa; 9 | @fa-version: "4.7.0"; 10 | @fa-border-color: #eee; 11 | @fa-inverse: #fff; 12 | @fa-li-width: (30em / 14); 13 | 14 | @fa-var-500px: "\f26e"; 15 | @fa-var-address-book: "\f2b9"; 16 | @fa-var-address-book-o: "\f2ba"; 17 | @fa-var-address-card: "\f2bb"; 18 | @fa-var-address-card-o: "\f2bc"; 19 | @fa-var-adjust: "\f042"; 20 | @fa-var-adn: "\f170"; 21 | @fa-var-align-center: "\f037"; 22 | @fa-var-align-justify: "\f039"; 23 | @fa-var-align-left: "\f036"; 24 | @fa-var-align-right: "\f038"; 25 | @fa-var-amazon: "\f270"; 26 | @fa-var-ambulance: "\f0f9"; 27 | @fa-var-american-sign-language-interpreting: "\f2a3"; 28 | @fa-var-anchor: "\f13d"; 29 | @fa-var-android: "\f17b"; 30 | @fa-var-angellist: "\f209"; 31 | @fa-var-angle-double-down: "\f103"; 32 | @fa-var-angle-double-left: "\f100"; 33 | @fa-var-angle-double-right: "\f101"; 34 | @fa-var-angle-double-up: "\f102"; 35 | @fa-var-angle-down: "\f107"; 36 | @fa-var-angle-left: "\f104"; 37 | @fa-var-angle-right: "\f105"; 38 | @fa-var-angle-up: "\f106"; 39 | @fa-var-apple: "\f179"; 40 | @fa-var-archive: "\f187"; 41 | @fa-var-area-chart: "\f1fe"; 42 | @fa-var-arrow-circle-down: "\f0ab"; 43 | @fa-var-arrow-circle-left: "\f0a8"; 44 | @fa-var-arrow-circle-o-down: "\f01a"; 45 | @fa-var-arrow-circle-o-left: "\f190"; 46 | @fa-var-arrow-circle-o-right: "\f18e"; 47 | @fa-var-arrow-circle-o-up: "\f01b"; 48 | @fa-var-arrow-circle-right: "\f0a9"; 49 | @fa-var-arrow-circle-up: "\f0aa"; 50 | @fa-var-arrow-down: "\f063"; 51 | @fa-var-arrow-left: "\f060"; 52 | @fa-var-arrow-right: "\f061"; 53 | @fa-var-arrow-up: "\f062"; 54 | @fa-var-arrows: "\f047"; 55 | @fa-var-arrows-alt: "\f0b2"; 56 | @fa-var-arrows-h: "\f07e"; 57 | @fa-var-arrows-v: "\f07d"; 58 | @fa-var-asl-interpreting: "\f2a3"; 59 | @fa-var-assistive-listening-systems: "\f2a2"; 60 | @fa-var-asterisk: "\f069"; 61 | @fa-var-at: "\f1fa"; 62 | @fa-var-audio-description: "\f29e"; 63 | @fa-var-automobile: "\f1b9"; 64 | @fa-var-backward: "\f04a"; 65 | @fa-var-balance-scale: "\f24e"; 66 | @fa-var-ban: "\f05e"; 67 | @fa-var-bandcamp: "\f2d5"; 68 | @fa-var-bank: "\f19c"; 69 | @fa-var-bar-chart: "\f080"; 70 | @fa-var-bar-chart-o: "\f080"; 71 | @fa-var-barcode: "\f02a"; 72 | @fa-var-bars: "\f0c9"; 73 | @fa-var-bath: "\f2cd"; 74 | @fa-var-bathtub: "\f2cd"; 75 | @fa-var-battery: "\f240"; 76 | @fa-var-battery-0: "\f244"; 77 | @fa-var-battery-1: "\f243"; 78 | @fa-var-battery-2: "\f242"; 79 | @fa-var-battery-3: "\f241"; 80 | @fa-var-battery-4: "\f240"; 81 | @fa-var-battery-empty: "\f244"; 82 | @fa-var-battery-full: "\f240"; 83 | @fa-var-battery-half: "\f242"; 84 | @fa-var-battery-quarter: "\f243"; 85 | @fa-var-battery-three-quarters: "\f241"; 86 | @fa-var-bed: "\f236"; 87 | @fa-var-beer: "\f0fc"; 88 | @fa-var-behance: "\f1b4"; 89 | @fa-var-behance-square: "\f1b5"; 90 | @fa-var-bell: "\f0f3"; 91 | @fa-var-bell-o: "\f0a2"; 92 | @fa-var-bell-slash: "\f1f6"; 93 | @fa-var-bell-slash-o: "\f1f7"; 94 | @fa-var-bicycle: "\f206"; 95 | @fa-var-binoculars: "\f1e5"; 96 | @fa-var-birthday-cake: "\f1fd"; 97 | @fa-var-bitbucket: "\f171"; 98 | @fa-var-bitbucket-square: "\f172"; 99 | @fa-var-bitcoin: "\f15a"; 100 | @fa-var-black-tie: "\f27e"; 101 | @fa-var-blind: "\f29d"; 102 | @fa-var-bluetooth: "\f293"; 103 | @fa-var-bluetooth-b: "\f294"; 104 | @fa-var-bold: "\f032"; 105 | @fa-var-bolt: "\f0e7"; 106 | @fa-var-bomb: "\f1e2"; 107 | @fa-var-book: "\f02d"; 108 | @fa-var-bookmark: "\f02e"; 109 | @fa-var-bookmark-o: "\f097"; 110 | @fa-var-braille: "\f2a1"; 111 | @fa-var-briefcase: "\f0b1"; 112 | @fa-var-btc: "\f15a"; 113 | @fa-var-bug: "\f188"; 114 | @fa-var-building: "\f1ad"; 115 | @fa-var-building-o: "\f0f7"; 116 | @fa-var-bullhorn: "\f0a1"; 117 | @fa-var-bullseye: "\f140"; 118 | @fa-var-bus: "\f207"; 119 | @fa-var-buysellads: "\f20d"; 120 | @fa-var-cab: "\f1ba"; 121 | @fa-var-calculator: "\f1ec"; 122 | @fa-var-calendar: "\f073"; 123 | @fa-var-calendar-check-o: "\f274"; 124 | @fa-var-calendar-minus-o: "\f272"; 125 | @fa-var-calendar-o: "\f133"; 126 | @fa-var-calendar-plus-o: "\f271"; 127 | @fa-var-calendar-times-o: "\f273"; 128 | @fa-var-camera: "\f030"; 129 | @fa-var-camera-retro: "\f083"; 130 | @fa-var-car: "\f1b9"; 131 | @fa-var-caret-down: "\f0d7"; 132 | @fa-var-caret-left: "\f0d9"; 133 | @fa-var-caret-right: "\f0da"; 134 | @fa-var-caret-square-o-down: "\f150"; 135 | @fa-var-caret-square-o-left: "\f191"; 136 | @fa-var-caret-square-o-right: "\f152"; 137 | @fa-var-caret-square-o-up: "\f151"; 138 | @fa-var-caret-up: "\f0d8"; 139 | @fa-var-cart-arrow-down: "\f218"; 140 | @fa-var-cart-plus: "\f217"; 141 | @fa-var-cc: "\f20a"; 142 | @fa-var-cc-amex: "\f1f3"; 143 | @fa-var-cc-diners-club: "\f24c"; 144 | @fa-var-cc-discover: "\f1f2"; 145 | @fa-var-cc-jcb: "\f24b"; 146 | @fa-var-cc-mastercard: "\f1f1"; 147 | @fa-var-cc-paypal: "\f1f4"; 148 | @fa-var-cc-stripe: "\f1f5"; 149 | @fa-var-cc-visa: "\f1f0"; 150 | @fa-var-certificate: "\f0a3"; 151 | @fa-var-chain: "\f0c1"; 152 | @fa-var-chain-broken: "\f127"; 153 | @fa-var-check: "\f00c"; 154 | @fa-var-check-circle: "\f058"; 155 | @fa-var-check-circle-o: "\f05d"; 156 | @fa-var-check-square: "\f14a"; 157 | @fa-var-check-square-o: "\f046"; 158 | @fa-var-chevron-circle-down: "\f13a"; 159 | @fa-var-chevron-circle-left: "\f137"; 160 | @fa-var-chevron-circle-right: "\f138"; 161 | @fa-var-chevron-circle-up: "\f139"; 162 | @fa-var-chevron-down: "\f078"; 163 | @fa-var-chevron-left: "\f053"; 164 | @fa-var-chevron-right: "\f054"; 165 | @fa-var-chevron-up: "\f077"; 166 | @fa-var-child: "\f1ae"; 167 | @fa-var-chrome: "\f268"; 168 | @fa-var-circle: "\f111"; 169 | @fa-var-circle-o: "\f10c"; 170 | @fa-var-circle-o-notch: "\f1ce"; 171 | @fa-var-circle-thin: "\f1db"; 172 | @fa-var-clipboard: "\f0ea"; 173 | @fa-var-clock-o: "\f017"; 174 | @fa-var-clone: "\f24d"; 175 | @fa-var-close: "\f00d"; 176 | @fa-var-cloud: "\f0c2"; 177 | @fa-var-cloud-download: "\f0ed"; 178 | @fa-var-cloud-upload: "\f0ee"; 179 | @fa-var-cny: "\f157"; 180 | @fa-var-code: "\f121"; 181 | @fa-var-code-fork: "\f126"; 182 | @fa-var-codepen: "\f1cb"; 183 | @fa-var-codiepie: "\f284"; 184 | @fa-var-coffee: "\f0f4"; 185 | @fa-var-cog: "\f013"; 186 | @fa-var-cogs: "\f085"; 187 | @fa-var-columns: "\f0db"; 188 | @fa-var-comment: "\f075"; 189 | @fa-var-comment-o: "\f0e5"; 190 | @fa-var-commenting: "\f27a"; 191 | @fa-var-commenting-o: "\f27b"; 192 | @fa-var-comments: "\f086"; 193 | @fa-var-comments-o: "\f0e6"; 194 | @fa-var-compass: "\f14e"; 195 | @fa-var-compress: "\f066"; 196 | @fa-var-connectdevelop: "\f20e"; 197 | @fa-var-contao: "\f26d"; 198 | @fa-var-copy: "\f0c5"; 199 | @fa-var-copyright: "\f1f9"; 200 | @fa-var-creative-commons: "\f25e"; 201 | @fa-var-credit-card: "\f09d"; 202 | @fa-var-credit-card-alt: "\f283"; 203 | @fa-var-crop: "\f125"; 204 | @fa-var-crosshairs: "\f05b"; 205 | @fa-var-css3: "\f13c"; 206 | @fa-var-cube: "\f1b2"; 207 | @fa-var-cubes: "\f1b3"; 208 | @fa-var-cut: "\f0c4"; 209 | @fa-var-cutlery: "\f0f5"; 210 | @fa-var-dashboard: "\f0e4"; 211 | @fa-var-dashcube: "\f210"; 212 | @fa-var-database: "\f1c0"; 213 | @fa-var-deaf: "\f2a4"; 214 | @fa-var-deafness: "\f2a4"; 215 | @fa-var-dedent: "\f03b"; 216 | @fa-var-delicious: "\f1a5"; 217 | @fa-var-desktop: "\f108"; 218 | @fa-var-deviantart: "\f1bd"; 219 | @fa-var-diamond: "\f219"; 220 | @fa-var-digg: "\f1a6"; 221 | @fa-var-dollar: "\f155"; 222 | @fa-var-dot-circle-o: "\f192"; 223 | @fa-var-download: "\f019"; 224 | @fa-var-dribbble: "\f17d"; 225 | @fa-var-drivers-license: "\f2c2"; 226 | @fa-var-drivers-license-o: "\f2c3"; 227 | @fa-var-dropbox: "\f16b"; 228 | @fa-var-drupal: "\f1a9"; 229 | @fa-var-edge: "\f282"; 230 | @fa-var-edit: "\f044"; 231 | @fa-var-eercast: "\f2da"; 232 | @fa-var-eject: "\f052"; 233 | @fa-var-ellipsis-h: "\f141"; 234 | @fa-var-ellipsis-v: "\f142"; 235 | @fa-var-empire: "\f1d1"; 236 | @fa-var-envelope: "\f0e0"; 237 | @fa-var-envelope-o: "\f003"; 238 | @fa-var-envelope-open: "\f2b6"; 239 | @fa-var-envelope-open-o: "\f2b7"; 240 | @fa-var-envelope-square: "\f199"; 241 | @fa-var-envira: "\f299"; 242 | @fa-var-eraser: "\f12d"; 243 | @fa-var-etsy: "\f2d7"; 244 | @fa-var-eur: "\f153"; 245 | @fa-var-euro: "\f153"; 246 | @fa-var-exchange: "\f0ec"; 247 | @fa-var-exclamation: "\f12a"; 248 | @fa-var-exclamation-circle: "\f06a"; 249 | @fa-var-exclamation-triangle: "\f071"; 250 | @fa-var-expand: "\f065"; 251 | @fa-var-expeditedssl: "\f23e"; 252 | @fa-var-external-link: "\f08e"; 253 | @fa-var-external-link-square: "\f14c"; 254 | @fa-var-eye: "\f06e"; 255 | @fa-var-eye-slash: "\f070"; 256 | @fa-var-eyedropper: "\f1fb"; 257 | @fa-var-fa: "\f2b4"; 258 | @fa-var-facebook: "\f09a"; 259 | @fa-var-facebook-f: "\f09a"; 260 | @fa-var-facebook-official: "\f230"; 261 | @fa-var-facebook-square: "\f082"; 262 | @fa-var-fast-backward: "\f049"; 263 | @fa-var-fast-forward: "\f050"; 264 | @fa-var-fax: "\f1ac"; 265 | @fa-var-feed: "\f09e"; 266 | @fa-var-female: "\f182"; 267 | @fa-var-fighter-jet: "\f0fb"; 268 | @fa-var-file: "\f15b"; 269 | @fa-var-file-archive-o: "\f1c6"; 270 | @fa-var-file-audio-o: "\f1c7"; 271 | @fa-var-file-code-o: "\f1c9"; 272 | @fa-var-file-excel-o: "\f1c3"; 273 | @fa-var-file-image-o: "\f1c5"; 274 | @fa-var-file-movie-o: "\f1c8"; 275 | @fa-var-file-o: "\f016"; 276 | @fa-var-file-pdf-o: "\f1c1"; 277 | @fa-var-file-photo-o: "\f1c5"; 278 | @fa-var-file-picture-o: "\f1c5"; 279 | @fa-var-file-powerpoint-o: "\f1c4"; 280 | @fa-var-file-sound-o: "\f1c7"; 281 | @fa-var-file-text: "\f15c"; 282 | @fa-var-file-text-o: "\f0f6"; 283 | @fa-var-file-video-o: "\f1c8"; 284 | @fa-var-file-word-o: "\f1c2"; 285 | @fa-var-file-zip-o: "\f1c6"; 286 | @fa-var-files-o: "\f0c5"; 287 | @fa-var-film: "\f008"; 288 | @fa-var-filter: "\f0b0"; 289 | @fa-var-fire: "\f06d"; 290 | @fa-var-fire-extinguisher: "\f134"; 291 | @fa-var-firefox: "\f269"; 292 | @fa-var-first-order: "\f2b0"; 293 | @fa-var-flag: "\f024"; 294 | @fa-var-flag-checkered: "\f11e"; 295 | @fa-var-flag-o: "\f11d"; 296 | @fa-var-flash: "\f0e7"; 297 | @fa-var-flask: "\f0c3"; 298 | @fa-var-flickr: "\f16e"; 299 | @fa-var-floppy-o: "\f0c7"; 300 | @fa-var-folder: "\f07b"; 301 | @fa-var-folder-o: "\f114"; 302 | @fa-var-folder-open: "\f07c"; 303 | @fa-var-folder-open-o: "\f115"; 304 | @fa-var-font: "\f031"; 305 | @fa-var-font-awesome: "\f2b4"; 306 | @fa-var-fonticons: "\f280"; 307 | @fa-var-fort-awesome: "\f286"; 308 | @fa-var-forumbee: "\f211"; 309 | @fa-var-forward: "\f04e"; 310 | @fa-var-foursquare: "\f180"; 311 | @fa-var-free-code-camp: "\f2c5"; 312 | @fa-var-frown-o: "\f119"; 313 | @fa-var-futbol-o: "\f1e3"; 314 | @fa-var-gamepad: "\f11b"; 315 | @fa-var-gavel: "\f0e3"; 316 | @fa-var-gbp: "\f154"; 317 | @fa-var-ge: "\f1d1"; 318 | @fa-var-gear: "\f013"; 319 | @fa-var-gears: "\f085"; 320 | @fa-var-genderless: "\f22d"; 321 | @fa-var-get-pocket: "\f265"; 322 | @fa-var-gg: "\f260"; 323 | @fa-var-gg-circle: "\f261"; 324 | @fa-var-gift: "\f06b"; 325 | @fa-var-git: "\f1d3"; 326 | @fa-var-git-square: "\f1d2"; 327 | @fa-var-github: "\f09b"; 328 | @fa-var-github-alt: "\f113"; 329 | @fa-var-github-square: "\f092"; 330 | @fa-var-gitlab: "\f296"; 331 | @fa-var-gittip: "\f184"; 332 | @fa-var-glass: "\f000"; 333 | @fa-var-glide: "\f2a5"; 334 | @fa-var-glide-g: "\f2a6"; 335 | @fa-var-globe: "\f0ac"; 336 | @fa-var-google: "\f1a0"; 337 | @fa-var-google-plus: "\f0d5"; 338 | @fa-var-google-plus-circle: "\f2b3"; 339 | @fa-var-google-plus-official: "\f2b3"; 340 | @fa-var-google-plus-square: "\f0d4"; 341 | @fa-var-google-wallet: "\f1ee"; 342 | @fa-var-graduation-cap: "\f19d"; 343 | @fa-var-gratipay: "\f184"; 344 | @fa-var-grav: "\f2d6"; 345 | @fa-var-group: "\f0c0"; 346 | @fa-var-h-square: "\f0fd"; 347 | @fa-var-hacker-news: "\f1d4"; 348 | @fa-var-hand-grab-o: "\f255"; 349 | @fa-var-hand-lizard-o: "\f258"; 350 | @fa-var-hand-o-down: "\f0a7"; 351 | @fa-var-hand-o-left: "\f0a5"; 352 | @fa-var-hand-o-right: "\f0a4"; 353 | @fa-var-hand-o-up: "\f0a6"; 354 | @fa-var-hand-paper-o: "\f256"; 355 | @fa-var-hand-peace-o: "\f25b"; 356 | @fa-var-hand-pointer-o: "\f25a"; 357 | @fa-var-hand-rock-o: "\f255"; 358 | @fa-var-hand-scissors-o: "\f257"; 359 | @fa-var-hand-spock-o: "\f259"; 360 | @fa-var-hand-stop-o: "\f256"; 361 | @fa-var-handshake-o: "\f2b5"; 362 | @fa-var-hard-of-hearing: "\f2a4"; 363 | @fa-var-hashtag: "\f292"; 364 | @fa-var-hdd-o: "\f0a0"; 365 | @fa-var-header: "\f1dc"; 366 | @fa-var-headphones: "\f025"; 367 | @fa-var-heart: "\f004"; 368 | @fa-var-heart-o: "\f08a"; 369 | @fa-var-heartbeat: "\f21e"; 370 | @fa-var-history: "\f1da"; 371 | @fa-var-home: "\f015"; 372 | @fa-var-hospital-o: "\f0f8"; 373 | @fa-var-hotel: "\f236"; 374 | @fa-var-hourglass: "\f254"; 375 | @fa-var-hourglass-1: "\f251"; 376 | @fa-var-hourglass-2: "\f252"; 377 | @fa-var-hourglass-3: "\f253"; 378 | @fa-var-hourglass-end: "\f253"; 379 | @fa-var-hourglass-half: "\f252"; 380 | @fa-var-hourglass-o: "\f250"; 381 | @fa-var-hourglass-start: "\f251"; 382 | @fa-var-houzz: "\f27c"; 383 | @fa-var-html5: "\f13b"; 384 | @fa-var-i-cursor: "\f246"; 385 | @fa-var-id-badge: "\f2c1"; 386 | @fa-var-id-card: "\f2c2"; 387 | @fa-var-id-card-o: "\f2c3"; 388 | @fa-var-ils: "\f20b"; 389 | @fa-var-image: "\f03e"; 390 | @fa-var-imdb: "\f2d8"; 391 | @fa-var-inbox: "\f01c"; 392 | @fa-var-indent: "\f03c"; 393 | @fa-var-industry: "\f275"; 394 | @fa-var-info: "\f129"; 395 | @fa-var-info-circle: "\f05a"; 396 | @fa-var-inr: "\f156"; 397 | @fa-var-instagram: "\f16d"; 398 | @fa-var-institution: "\f19c"; 399 | @fa-var-internet-explorer: "\f26b"; 400 | @fa-var-intersex: "\f224"; 401 | @fa-var-ioxhost: "\f208"; 402 | @fa-var-italic: "\f033"; 403 | @fa-var-joomla: "\f1aa"; 404 | @fa-var-jpy: "\f157"; 405 | @fa-var-jsfiddle: "\f1cc"; 406 | @fa-var-key: "\f084"; 407 | @fa-var-keyboard-o: "\f11c"; 408 | @fa-var-krw: "\f159"; 409 | @fa-var-language: "\f1ab"; 410 | @fa-var-laptop: "\f109"; 411 | @fa-var-lastfm: "\f202"; 412 | @fa-var-lastfm-square: "\f203"; 413 | @fa-var-leaf: "\f06c"; 414 | @fa-var-leanpub: "\f212"; 415 | @fa-var-legal: "\f0e3"; 416 | @fa-var-lemon-o: "\f094"; 417 | @fa-var-level-down: "\f149"; 418 | @fa-var-level-up: "\f148"; 419 | @fa-var-life-bouy: "\f1cd"; 420 | @fa-var-life-buoy: "\f1cd"; 421 | @fa-var-life-ring: "\f1cd"; 422 | @fa-var-life-saver: "\f1cd"; 423 | @fa-var-lightbulb-o: "\f0eb"; 424 | @fa-var-line-chart: "\f201"; 425 | @fa-var-link: "\f0c1"; 426 | @fa-var-linkedin: "\f0e1"; 427 | @fa-var-linkedin-square: "\f08c"; 428 | @fa-var-linode: "\f2b8"; 429 | @fa-var-linux: "\f17c"; 430 | @fa-var-list: "\f03a"; 431 | @fa-var-list-alt: "\f022"; 432 | @fa-var-list-ol: "\f0cb"; 433 | @fa-var-list-ul: "\f0ca"; 434 | @fa-var-location-arrow: "\f124"; 435 | @fa-var-lock: "\f023"; 436 | @fa-var-long-arrow-down: "\f175"; 437 | @fa-var-long-arrow-left: "\f177"; 438 | @fa-var-long-arrow-right: "\f178"; 439 | @fa-var-long-arrow-up: "\f176"; 440 | @fa-var-low-vision: "\f2a8"; 441 | @fa-var-magic: "\f0d0"; 442 | @fa-var-magnet: "\f076"; 443 | @fa-var-mail-forward: "\f064"; 444 | @fa-var-mail-reply: "\f112"; 445 | @fa-var-mail-reply-all: "\f122"; 446 | @fa-var-male: "\f183"; 447 | @fa-var-map: "\f279"; 448 | @fa-var-map-marker: "\f041"; 449 | @fa-var-map-o: "\f278"; 450 | @fa-var-map-pin: "\f276"; 451 | @fa-var-map-signs: "\f277"; 452 | @fa-var-mars: "\f222"; 453 | @fa-var-mars-double: "\f227"; 454 | @fa-var-mars-stroke: "\f229"; 455 | @fa-var-mars-stroke-h: "\f22b"; 456 | @fa-var-mars-stroke-v: "\f22a"; 457 | @fa-var-maxcdn: "\f136"; 458 | @fa-var-meanpath: "\f20c"; 459 | @fa-var-medium: "\f23a"; 460 | @fa-var-medkit: "\f0fa"; 461 | @fa-var-meetup: "\f2e0"; 462 | @fa-var-meh-o: "\f11a"; 463 | @fa-var-mercury: "\f223"; 464 | @fa-var-microchip: "\f2db"; 465 | @fa-var-microphone: "\f130"; 466 | @fa-var-microphone-slash: "\f131"; 467 | @fa-var-minus: "\f068"; 468 | @fa-var-minus-circle: "\f056"; 469 | @fa-var-minus-square: "\f146"; 470 | @fa-var-minus-square-o: "\f147"; 471 | @fa-var-mixcloud: "\f289"; 472 | @fa-var-mobile: "\f10b"; 473 | @fa-var-mobile-phone: "\f10b"; 474 | @fa-var-modx: "\f285"; 475 | @fa-var-money: "\f0d6"; 476 | @fa-var-moon-o: "\f186"; 477 | @fa-var-mortar-board: "\f19d"; 478 | @fa-var-motorcycle: "\f21c"; 479 | @fa-var-mouse-pointer: "\f245"; 480 | @fa-var-music: "\f001"; 481 | @fa-var-navicon: "\f0c9"; 482 | @fa-var-neuter: "\f22c"; 483 | @fa-var-newspaper-o: "\f1ea"; 484 | @fa-var-object-group: "\f247"; 485 | @fa-var-object-ungroup: "\f248"; 486 | @fa-var-odnoklassniki: "\f263"; 487 | @fa-var-odnoklassniki-square: "\f264"; 488 | @fa-var-opencart: "\f23d"; 489 | @fa-var-openid: "\f19b"; 490 | @fa-var-opera: "\f26a"; 491 | @fa-var-optin-monster: "\f23c"; 492 | @fa-var-outdent: "\f03b"; 493 | @fa-var-pagelines: "\f18c"; 494 | @fa-var-paint-brush: "\f1fc"; 495 | @fa-var-paper-plane: "\f1d8"; 496 | @fa-var-paper-plane-o: "\f1d9"; 497 | @fa-var-paperclip: "\f0c6"; 498 | @fa-var-paragraph: "\f1dd"; 499 | @fa-var-paste: "\f0ea"; 500 | @fa-var-pause: "\f04c"; 501 | @fa-var-pause-circle: "\f28b"; 502 | @fa-var-pause-circle-o: "\f28c"; 503 | @fa-var-paw: "\f1b0"; 504 | @fa-var-paypal: "\f1ed"; 505 | @fa-var-pencil: "\f040"; 506 | @fa-var-pencil-square: "\f14b"; 507 | @fa-var-pencil-square-o: "\f044"; 508 | @fa-var-percent: "\f295"; 509 | @fa-var-phone: "\f095"; 510 | @fa-var-phone-square: "\f098"; 511 | @fa-var-photo: "\f03e"; 512 | @fa-var-picture-o: "\f03e"; 513 | @fa-var-pie-chart: "\f200"; 514 | @fa-var-pied-piper: "\f2ae"; 515 | @fa-var-pied-piper-alt: "\f1a8"; 516 | @fa-var-pied-piper-pp: "\f1a7"; 517 | @fa-var-pinterest: "\f0d2"; 518 | @fa-var-pinterest-p: "\f231"; 519 | @fa-var-pinterest-square: "\f0d3"; 520 | @fa-var-plane: "\f072"; 521 | @fa-var-play: "\f04b"; 522 | @fa-var-play-circle: "\f144"; 523 | @fa-var-play-circle-o: "\f01d"; 524 | @fa-var-plug: "\f1e6"; 525 | @fa-var-plus: "\f067"; 526 | @fa-var-plus-circle: "\f055"; 527 | @fa-var-plus-square: "\f0fe"; 528 | @fa-var-plus-square-o: "\f196"; 529 | @fa-var-podcast: "\f2ce"; 530 | @fa-var-power-off: "\f011"; 531 | @fa-var-print: "\f02f"; 532 | @fa-var-product-hunt: "\f288"; 533 | @fa-var-puzzle-piece: "\f12e"; 534 | @fa-var-qq: "\f1d6"; 535 | @fa-var-qrcode: "\f029"; 536 | @fa-var-question: "\f128"; 537 | @fa-var-question-circle: "\f059"; 538 | @fa-var-question-circle-o: "\f29c"; 539 | @fa-var-quora: "\f2c4"; 540 | @fa-var-quote-left: "\f10d"; 541 | @fa-var-quote-right: "\f10e"; 542 | @fa-var-ra: "\f1d0"; 543 | @fa-var-random: "\f074"; 544 | @fa-var-ravelry: "\f2d9"; 545 | @fa-var-rebel: "\f1d0"; 546 | @fa-var-recycle: "\f1b8"; 547 | @fa-var-reddit: "\f1a1"; 548 | @fa-var-reddit-alien: "\f281"; 549 | @fa-var-reddit-square: "\f1a2"; 550 | @fa-var-refresh: "\f021"; 551 | @fa-var-registered: "\f25d"; 552 | @fa-var-remove: "\f00d"; 553 | @fa-var-renren: "\f18b"; 554 | @fa-var-reorder: "\f0c9"; 555 | @fa-var-repeat: "\f01e"; 556 | @fa-var-reply: "\f112"; 557 | @fa-var-reply-all: "\f122"; 558 | @fa-var-resistance: "\f1d0"; 559 | @fa-var-retweet: "\f079"; 560 | @fa-var-rmb: "\f157"; 561 | @fa-var-road: "\f018"; 562 | @fa-var-rocket: "\f135"; 563 | @fa-var-rotate-left: "\f0e2"; 564 | @fa-var-rotate-right: "\f01e"; 565 | @fa-var-rouble: "\f158"; 566 | @fa-var-rss: "\f09e"; 567 | @fa-var-rss-square: "\f143"; 568 | @fa-var-rub: "\f158"; 569 | @fa-var-ruble: "\f158"; 570 | @fa-var-rupee: "\f156"; 571 | @fa-var-s15: "\f2cd"; 572 | @fa-var-safari: "\f267"; 573 | @fa-var-save: "\f0c7"; 574 | @fa-var-scissors: "\f0c4"; 575 | @fa-var-scribd: "\f28a"; 576 | @fa-var-search: "\f002"; 577 | @fa-var-search-minus: "\f010"; 578 | @fa-var-search-plus: "\f00e"; 579 | @fa-var-sellsy: "\f213"; 580 | @fa-var-send: "\f1d8"; 581 | @fa-var-send-o: "\f1d9"; 582 | @fa-var-server: "\f233"; 583 | @fa-var-share: "\f064"; 584 | @fa-var-share-alt: "\f1e0"; 585 | @fa-var-share-alt-square: "\f1e1"; 586 | @fa-var-share-square: "\f14d"; 587 | @fa-var-share-square-o: "\f045"; 588 | @fa-var-shekel: "\f20b"; 589 | @fa-var-sheqel: "\f20b"; 590 | @fa-var-shield: "\f132"; 591 | @fa-var-ship: "\f21a"; 592 | @fa-var-shirtsinbulk: "\f214"; 593 | @fa-var-shopping-bag: "\f290"; 594 | @fa-var-shopping-basket: "\f291"; 595 | @fa-var-shopping-cart: "\f07a"; 596 | @fa-var-shower: "\f2cc"; 597 | @fa-var-sign-in: "\f090"; 598 | @fa-var-sign-language: "\f2a7"; 599 | @fa-var-sign-out: "\f08b"; 600 | @fa-var-signal: "\f012"; 601 | @fa-var-signing: "\f2a7"; 602 | @fa-var-simplybuilt: "\f215"; 603 | @fa-var-sitemap: "\f0e8"; 604 | @fa-var-skyatlas: "\f216"; 605 | @fa-var-skype: "\f17e"; 606 | @fa-var-slack: "\f198"; 607 | @fa-var-sliders: "\f1de"; 608 | @fa-var-slideshare: "\f1e7"; 609 | @fa-var-smile-o: "\f118"; 610 | @fa-var-snapchat: "\f2ab"; 611 | @fa-var-snapchat-ghost: "\f2ac"; 612 | @fa-var-snapchat-square: "\f2ad"; 613 | @fa-var-snowflake-o: "\f2dc"; 614 | @fa-var-soccer-ball-o: "\f1e3"; 615 | @fa-var-sort: "\f0dc"; 616 | @fa-var-sort-alpha-asc: "\f15d"; 617 | @fa-var-sort-alpha-desc: "\f15e"; 618 | @fa-var-sort-amount-asc: "\f160"; 619 | @fa-var-sort-amount-desc: "\f161"; 620 | @fa-var-sort-asc: "\f0de"; 621 | @fa-var-sort-desc: "\f0dd"; 622 | @fa-var-sort-down: "\f0dd"; 623 | @fa-var-sort-numeric-asc: "\f162"; 624 | @fa-var-sort-numeric-desc: "\f163"; 625 | @fa-var-sort-up: "\f0de"; 626 | @fa-var-soundcloud: "\f1be"; 627 | @fa-var-space-shuttle: "\f197"; 628 | @fa-var-spinner: "\f110"; 629 | @fa-var-spoon: "\f1b1"; 630 | @fa-var-spotify: "\f1bc"; 631 | @fa-var-square: "\f0c8"; 632 | @fa-var-square-o: "\f096"; 633 | @fa-var-stack-exchange: "\f18d"; 634 | @fa-var-stack-overflow: "\f16c"; 635 | @fa-var-star: "\f005"; 636 | @fa-var-star-half: "\f089"; 637 | @fa-var-star-half-empty: "\f123"; 638 | @fa-var-star-half-full: "\f123"; 639 | @fa-var-star-half-o: "\f123"; 640 | @fa-var-star-o: "\f006"; 641 | @fa-var-steam: "\f1b6"; 642 | @fa-var-steam-square: "\f1b7"; 643 | @fa-var-step-backward: "\f048"; 644 | @fa-var-step-forward: "\f051"; 645 | @fa-var-stethoscope: "\f0f1"; 646 | @fa-var-sticky-note: "\f249"; 647 | @fa-var-sticky-note-o: "\f24a"; 648 | @fa-var-stop: "\f04d"; 649 | @fa-var-stop-circle: "\f28d"; 650 | @fa-var-stop-circle-o: "\f28e"; 651 | @fa-var-street-view: "\f21d"; 652 | @fa-var-strikethrough: "\f0cc"; 653 | @fa-var-stumbleupon: "\f1a4"; 654 | @fa-var-stumbleupon-circle: "\f1a3"; 655 | @fa-var-subscript: "\f12c"; 656 | @fa-var-subway: "\f239"; 657 | @fa-var-suitcase: "\f0f2"; 658 | @fa-var-sun-o: "\f185"; 659 | @fa-var-superpowers: "\f2dd"; 660 | @fa-var-superscript: "\f12b"; 661 | @fa-var-support: "\f1cd"; 662 | @fa-var-table: "\f0ce"; 663 | @fa-var-tablet: "\f10a"; 664 | @fa-var-tachometer: "\f0e4"; 665 | @fa-var-tag: "\f02b"; 666 | @fa-var-tags: "\f02c"; 667 | @fa-var-tasks: "\f0ae"; 668 | @fa-var-taxi: "\f1ba"; 669 | @fa-var-telegram: "\f2c6"; 670 | @fa-var-television: "\f26c"; 671 | @fa-var-tencent-weibo: "\f1d5"; 672 | @fa-var-terminal: "\f120"; 673 | @fa-var-text-height: "\f034"; 674 | @fa-var-text-width: "\f035"; 675 | @fa-var-th: "\f00a"; 676 | @fa-var-th-large: "\f009"; 677 | @fa-var-th-list: "\f00b"; 678 | @fa-var-themeisle: "\f2b2"; 679 | @fa-var-thermometer: "\f2c7"; 680 | @fa-var-thermometer-0: "\f2cb"; 681 | @fa-var-thermometer-1: "\f2ca"; 682 | @fa-var-thermometer-2: "\f2c9"; 683 | @fa-var-thermometer-3: "\f2c8"; 684 | @fa-var-thermometer-4: "\f2c7"; 685 | @fa-var-thermometer-empty: "\f2cb"; 686 | @fa-var-thermometer-full: "\f2c7"; 687 | @fa-var-thermometer-half: "\f2c9"; 688 | @fa-var-thermometer-quarter: "\f2ca"; 689 | @fa-var-thermometer-three-quarters: "\f2c8"; 690 | @fa-var-thumb-tack: "\f08d"; 691 | @fa-var-thumbs-down: "\f165"; 692 | @fa-var-thumbs-o-down: "\f088"; 693 | @fa-var-thumbs-o-up: "\f087"; 694 | @fa-var-thumbs-up: "\f164"; 695 | @fa-var-ticket: "\f145"; 696 | @fa-var-times: "\f00d"; 697 | @fa-var-times-circle: "\f057"; 698 | @fa-var-times-circle-o: "\f05c"; 699 | @fa-var-times-rectangle: "\f2d3"; 700 | @fa-var-times-rectangle-o: "\f2d4"; 701 | @fa-var-tint: "\f043"; 702 | @fa-var-toggle-down: "\f150"; 703 | @fa-var-toggle-left: "\f191"; 704 | @fa-var-toggle-off: "\f204"; 705 | @fa-var-toggle-on: "\f205"; 706 | @fa-var-toggle-right: "\f152"; 707 | @fa-var-toggle-up: "\f151"; 708 | @fa-var-trademark: "\f25c"; 709 | @fa-var-train: "\f238"; 710 | @fa-var-transgender: "\f224"; 711 | @fa-var-transgender-alt: "\f225"; 712 | @fa-var-trash: "\f1f8"; 713 | @fa-var-trash-o: "\f014"; 714 | @fa-var-tree: "\f1bb"; 715 | @fa-var-trello: "\f181"; 716 | @fa-var-tripadvisor: "\f262"; 717 | @fa-var-trophy: "\f091"; 718 | @fa-var-truck: "\f0d1"; 719 | @fa-var-try: "\f195"; 720 | @fa-var-tty: "\f1e4"; 721 | @fa-var-tumblr: "\f173"; 722 | @fa-var-tumblr-square: "\f174"; 723 | @fa-var-turkish-lira: "\f195"; 724 | @fa-var-tv: "\f26c"; 725 | @fa-var-twitch: "\f1e8"; 726 | @fa-var-twitter: "\f099"; 727 | @fa-var-twitter-square: "\f081"; 728 | @fa-var-umbrella: "\f0e9"; 729 | @fa-var-underline: "\f0cd"; 730 | @fa-var-undo: "\f0e2"; 731 | @fa-var-universal-access: "\f29a"; 732 | @fa-var-university: "\f19c"; 733 | @fa-var-unlink: "\f127"; 734 | @fa-var-unlock: "\f09c"; 735 | @fa-var-unlock-alt: "\f13e"; 736 | @fa-var-unsorted: "\f0dc"; 737 | @fa-var-upload: "\f093"; 738 | @fa-var-usb: "\f287"; 739 | @fa-var-usd: "\f155"; 740 | @fa-var-user: "\f007"; 741 | @fa-var-user-circle: "\f2bd"; 742 | @fa-var-user-circle-o: "\f2be"; 743 | @fa-var-user-md: "\f0f0"; 744 | @fa-var-user-o: "\f2c0"; 745 | @fa-var-user-plus: "\f234"; 746 | @fa-var-user-secret: "\f21b"; 747 | @fa-var-user-times: "\f235"; 748 | @fa-var-users: "\f0c0"; 749 | @fa-var-vcard: "\f2bb"; 750 | @fa-var-vcard-o: "\f2bc"; 751 | @fa-var-venus: "\f221"; 752 | @fa-var-venus-double: "\f226"; 753 | @fa-var-venus-mars: "\f228"; 754 | @fa-var-viacoin: "\f237"; 755 | @fa-var-viadeo: "\f2a9"; 756 | @fa-var-viadeo-square: "\f2aa"; 757 | @fa-var-video-camera: "\f03d"; 758 | @fa-var-vimeo: "\f27d"; 759 | @fa-var-vimeo-square: "\f194"; 760 | @fa-var-vine: "\f1ca"; 761 | @fa-var-vk: "\f189"; 762 | @fa-var-volume-control-phone: "\f2a0"; 763 | @fa-var-volume-down: "\f027"; 764 | @fa-var-volume-off: "\f026"; 765 | @fa-var-volume-up: "\f028"; 766 | @fa-var-warning: "\f071"; 767 | @fa-var-wechat: "\f1d7"; 768 | @fa-var-weibo: "\f18a"; 769 | @fa-var-weixin: "\f1d7"; 770 | @fa-var-whatsapp: "\f232"; 771 | @fa-var-wheelchair: "\f193"; 772 | @fa-var-wheelchair-alt: "\f29b"; 773 | @fa-var-wifi: "\f1eb"; 774 | @fa-var-wikipedia-w: "\f266"; 775 | @fa-var-window-close: "\f2d3"; 776 | @fa-var-window-close-o: "\f2d4"; 777 | @fa-var-window-maximize: "\f2d0"; 778 | @fa-var-window-minimize: "\f2d1"; 779 | @fa-var-window-restore: "\f2d2"; 780 | @fa-var-windows: "\f17a"; 781 | @fa-var-won: "\f159"; 782 | @fa-var-wordpress: "\f19a"; 783 | @fa-var-wpbeginner: "\f297"; 784 | @fa-var-wpexplorer: "\f2de"; 785 | @fa-var-wpforms: "\f298"; 786 | @fa-var-wrench: "\f0ad"; 787 | @fa-var-xing: "\f168"; 788 | @fa-var-xing-square: "\f169"; 789 | @fa-var-y-combinator: "\f23b"; 790 | @fa-var-y-combinator-square: "\f1d4"; 791 | @fa-var-yahoo: "\f19e"; 792 | @fa-var-yc: "\f23b"; 793 | @fa-var-yc-square: "\f1d4"; 794 | @fa-var-yelp: "\f1e9"; 795 | @fa-var-yen: "\f157"; 796 | @fa-var-yoast: "\f2b1"; 797 | @fa-var-youtube: "\f167"; 798 | @fa-var-youtube-play: "\f16a"; 799 | @fa-var-youtube-square: "\f166"; 800 | 801 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Spinning Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | -webkit-animation: fa-spin 2s infinite linear; 6 | animation: fa-spin 2s infinite linear; 7 | } 8 | 9 | .#{$fa-css-prefix}-pulse { 10 | -webkit-animation: fa-spin 1s infinite steps(8); 11 | animation: fa-spin 1s infinite steps(8); 12 | } 13 | 14 | @-webkit-keyframes fa-spin { 15 | 0% { 16 | -webkit-transform: rotate(0deg); 17 | transform: rotate(0deg); 18 | } 19 | 100% { 20 | -webkit-transform: rotate(359deg); 21 | transform: rotate(359deg); 22 | } 23 | } 24 | 25 | @keyframes fa-spin { 26 | 0% { 27 | -webkit-transform: rotate(0deg); 28 | transform: rotate(0deg); 29 | } 30 | 100% { 31 | -webkit-transform: rotate(359deg); 32 | transform: rotate(359deg); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | padding: .2em .25em .15em; 6 | border: solid .08em $fa-border-color; 7 | border-radius: .1em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix} { 14 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | 18 | /* Deprecated as of 4.4.0 */ 19 | .pull-right { float: right; } 20 | .pull-left { float: left; } 21 | 22 | .#{$fa-css-prefix} { 23 | &.pull-left { margin-right: .3em; } 24 | &.pull-right { margin-left: .3em; } 25 | } 26 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix} { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | width: (18em / 14); 5 | text-align: center; 6 | } 7 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | /* makes the font 33% larger relative to the icon container */ 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -15%; 9 | } 10 | .#{$fa-css-prefix}-2x { font-size: 2em; } 11 | .#{$fa-css-prefix}-3x { font-size: 3em; } 12 | .#{$fa-css-prefix}-4x { font-size: 4em; } 13 | .#{$fa-css-prefix}-5x { font-size: 5em; } 14 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | padding-left: 0; 6 | margin-left: $fa-li-width; 7 | list-style-type: none; 8 | > li { position: relative; } 9 | } 10 | .#{$fa-css-prefix}-li { 11 | position: absolute; 12 | left: -$fa-li-width; 13 | width: $fa-li-width; 14 | top: (2em / 14); 15 | text-align: center; 16 | &.#{$fa-css-prefix}-lg { 17 | left: -$fa-li-width + (4em / 14); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_mixins.scss: -------------------------------------------------------------------------------- 1 | // Mixins 2 | // -------------------------- 3 | 4 | @mixin fa-icon() { 5 | display: inline-block; 6 | font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration 7 | font-size: inherit; // can't have font-size inherit on line above, so need to override 8 | text-rendering: auto; // optimizelegibility throws things off #1094 9 | -webkit-font-smoothing: antialiased; 10 | -moz-osx-font-smoothing: grayscale; 11 | 12 | } 13 | 14 | @mixin fa-icon-rotate($degrees, $rotation) { 15 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; 16 | -webkit-transform: rotate($degrees); 17 | -ms-transform: rotate($degrees); 18 | transform: rotate($degrees); 19 | } 20 | 21 | @mixin fa-icon-flip($horiz, $vert, $rotation) { 22 | -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; 23 | -webkit-transform: scale($horiz, $vert); 24 | -ms-transform: scale($horiz, $vert); 25 | transform: scale($horiz, $vert); 26 | } 27 | 28 | 29 | // Only display content to screen readers. A la Bootstrap 4. 30 | // 31 | // See: http://a11yproject.com/posts/how-to-hide-content/ 32 | 33 | @mixin sr-only { 34 | position: absolute; 35 | width: 1px; 36 | height: 1px; 37 | padding: 0; 38 | margin: -1px; 39 | overflow: hidden; 40 | clip: rect(0,0,0,0); 41 | border: 0; 42 | } 43 | 44 | // Use in conjunction with .sr-only to only display content when it's focused. 45 | // 46 | // Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 47 | // 48 | // Credit: HTML5 Boilerplate 49 | 50 | @mixin sr-only-focusable { 51 | &:active, 52 | &:focus { 53 | position: static; 54 | width: auto; 55 | height: auto; 56 | margin: 0; 57 | overflow: visible; 58 | clip: auto; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_path.scss: -------------------------------------------------------------------------------- 1 | /* FONT PATH 2 | * -------------------------- */ 3 | 4 | @font-face { 5 | font-family: 'FontAwesome'; 6 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); 7 | src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), 8 | url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), 9 | url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), 10 | url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), 11 | url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); 12 | // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts 13 | font-weight: normal; 14 | font-style: normal; 15 | } 16 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_rotated-flipped.scss: -------------------------------------------------------------------------------- 1 | // Rotated & Flipped Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } 5 | .#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } 6 | .#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } 7 | 8 | .#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } 9 | .#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } 10 | 11 | // Hook for IE8-9 12 | // ------------------------- 13 | 14 | :root .#{$fa-css-prefix}-rotate-90, 15 | :root .#{$fa-css-prefix}-rotate-180, 16 | :root .#{$fa-css-prefix}-rotate-270, 17 | :root .#{$fa-css-prefix}-flip-horizontal, 18 | :root .#{$fa-css-prefix}-flip-vertical { 19 | filter: none; 20 | } 21 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only(); } 5 | .sr-only-focusable { @include sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/_stacked.scss: -------------------------------------------------------------------------------- 1 | // Stacked Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-stack { 5 | position: relative; 6 | display: inline-block; 7 | width: 2em; 8 | height: 2em; 9 | line-height: 2em; 10 | vertical-align: middle; 11 | } 12 | .#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { 13 | position: absolute; 14 | left: 0; 15 | width: 100%; 16 | text-align: center; 17 | } 18 | .#{$fa-css-prefix}-stack-1x { line-height: inherit; } 19 | .#{$fa-css-prefix}-stack-2x { font-size: 2em; } 20 | .#{$fa-css-prefix}-inverse { color: $fa-inverse; } 21 | -------------------------------------------------------------------------------- /demo5/font-awesome-4.7.0/scss/font-awesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */ 5 | 6 | @import "variables"; 7 | @import "mixins"; 8 | @import "path"; 9 | @import "core"; 10 | @import "larger"; 11 | @import "fixed-width"; 12 | @import "list"; 13 | @import "bordered-pulled"; 14 | @import "animated"; 15 | @import "rotated-flipped"; 16 | @import "stacked"; 17 | @import "icons"; 18 | @import "screen-reader"; 19 | -------------------------------------------------------------------------------- /demo5/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/logo.png -------------------------------------------------------------------------------- /demo5/images/zjnews_back_icon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/zjnews_back_icon@2x.png -------------------------------------------------------------------------------- /demo5/images/zjnews_back_icon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/zjnews_back_icon@3x.png -------------------------------------------------------------------------------- /demo5/images/zjnews_phone@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/zjnews_phone@2x.png -------------------------------------------------------------------------------- /demo5/images/zjnews_phone@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/zjnews_phone@3x.png -------------------------------------------------------------------------------- /demo5/images/zjnews_web@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/zjnews_web@2x.png -------------------------------------------------------------------------------- /demo5/images/zjnews_web@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/laizimo/h5-demo/5de60e5663432c28b7082cd8c0c706a36604dd35/demo5/images/zjnews_web@3x.png -------------------------------------------------------------------------------- /demo5/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Document 8 | 9 | 10 | 11 | 12 |
    13 | 14 |
    15 | 29 |
    30 |
    31 |
    32 |
    33 | 34 | 抱歉,来晚一步,这篇已经不存在了 35 |
    36 |
    37 | 38 | --------------------------------------------------------------------------------