yuantianjiao 6 年之前
父節點
當前提交
e65e962dc1

+ 30
- 3
package-lock.json 查看文件

@@ -1949,6 +1949,11 @@
1949 1949
         }
1950 1950
       }
1951 1951
     },
1952
+    "base64-arraybuffer": {
1953
+      "version": "0.1.5",
1954
+      "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz",
1955
+      "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg="
1956
+    },
1952 1957
     "base64-js": {
1953 1958
       "version": "1.3.0",
1954 1959
       "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
@@ -2579,9 +2584,9 @@
2579 2584
       "dev": true
2580 2585
     },
2581 2586
     "chromedriver": {
2582
-      "version": "2.44.0",
2583
-      "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.44.0.tgz",
2584
-      "integrity": "sha512-/lDFxpSc3mJG/+RF657qDVa3XbfwG8+X2x0Y3kVkvZe6u6aZg+zTMHeGoQziUQGPaDQ9sj8sFYv4duv/AS6y7A==",
2587
+      "version": "2.45.0",
2588
+      "resolved": "https://registry.npmjs.org/chromedriver/-/chromedriver-2.45.0.tgz",
2589
+      "integrity": "sha512-Qwmcr+2mU3INeR6mVsQ8gO00vZpL8ZeTJLclX44C0dcs88jrSDgckPqbG+qkVX+m2L/aOPnF0lYgPdOiOiLt5w==",
2585 2590
       "dev": true,
2586 2591
       "requires": {
2587 2592
         "del": "3.0.0",
@@ -3234,6 +3239,14 @@
3234 3239
       "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=",
3235 3240
       "dev": true
3236 3241
     },
3242
+    "css-line-break": {
3243
+      "version": "1.0.1",
3244
+      "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-1.0.1.tgz",
3245
+      "integrity": "sha1-GfIGOjPpX7KDG4ZEbAuAwYivRQo=",
3246
+      "requires": {
3247
+        "base64-arraybuffer": "0.1.5"
3248
+      }
3249
+    },
3237 3250
     "css-loader": {
3238 3251
       "version": "0.28.11",
3239 3252
       "resolved": "http://registry.npmjs.org/css-loader/-/css-loader-0.28.11.tgz",
@@ -6339,6 +6352,14 @@
6339 6352
         }
6340 6353
       }
6341 6354
     },
6355
+    "html2canvas": {
6356
+      "version": "1.0.0-alpha.12",
6357
+      "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.0.0-alpha.12.tgz",
6358
+      "integrity": "sha1-OxmS48mz9WBjw1/WIElPN+uohRM=",
6359
+      "requires": {
6360
+        "css-line-break": "1.0.1"
6361
+      }
6362
+    },
6342 6363
     "htmlparser2": {
6343 6364
       "version": "3.3.0",
6344 6365
       "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz",
@@ -15412,6 +15433,12 @@
15412 15433
       "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
15413 15434
       "dev": true
15414 15435
     },
15436
+    "weixin-jsapi": {
15437
+      "version": "1.1.0",
15438
+      "resolved": "https://registry.npmjs.org/weixin-jsapi/-/weixin-jsapi-1.1.0.tgz",
15439
+      "integrity": "sha1-UalaIiTFnR2PAv3bxt5S2hazRLM=",
15440
+      "dev": true
15441
+    },
15415 15442
     "whatwg-encoding": {
15416 15443
       "version": "1.0.5",
15417 15444
       "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",

+ 2
- 1
package.json 查看文件

@@ -15,6 +15,7 @@
15 15
   },
16 16
   "dependencies": {
17 17
     "axios": "^0.18.0",
18
+    "html2canvas": "^1.0.0-alpha.12",
18 19
     "mescroll.js": "^1.3.8",
19 20
     "vant": "^1.4.5",
20 21
     "vue": "^2.5.2",
@@ -38,7 +39,7 @@
38 39
     "babel-preset-stage-2": "^6.22.0",
39 40
     "babel-register": "^6.22.0",
40 41
     "chalk": "^2.0.1",
41
-    "chromedriver": "^2.27.2",
42
+    "chromedriver": "^2.45.0",
42 43
     "copy-webpack-plugin": "^4.0.1",
43 44
     "cross-spawn": "^5.0.1",
44 45
     "css-loader": "^0.28.0",

+ 122
- 95
src/pages/home/index.vue 查看文件

@@ -1,38 +1,39 @@
1 1
 <template>
2
-  <div class="mainPage">
2
+  <div class="mainPage" id="canvasPage">
3 3
     <div class="imgArr" :hidden="true">
4 4
       <img
5 5
         v-for="item in imgTotal"
6 6
         :key="item"
7
-        :src="'https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-' + item + '.png'"
7
+        :src="'http://wx.jinchengjiaye.com/h5-2019/static/images/icon-' + item + '.png'"
8 8
         @load="imgLoad"
9 9
         alt
10 10
       >
11 11
     </div>
12 12
     <div class="subPage" v-if="showPage">
13 13
       <img
14
-        src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-12.png"
14
+        src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-12.png"
15 15
         style="z-index: 3;"
16 16
         class="centerLabel cover"
17 17
         alt
18 18
       >
19 19
       <img
20
-        src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-10.png"
20
+        src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-10.png"
21 21
         class="icon10"
22 22
         style="position: absolute;left:9vw;top:3.7vh;z-index:100;width: 31.2vw;"
23
+        v-if="imgSrc === null"
23 24
         :class="{'active': currentPage !== 0}"
24 25
         alt
25 26
       >
26
-      <div class="page1" :class="{'show': currentPage === 1}">
27
+      <div class="page1" :class="{'show': currentPage === 1 && imgSrc === null}">
27 28
         <img
28
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-3.png"
29
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-3.png"
29 30
           class="icon3"
30 31
           style="position: absolute;left:0;top:0;z-index:2;width: 87.5vw;"
31 32
           :class="{'active': currentPage === 1}"
32 33
           alt
33 34
         >
34 35
         <img
35
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-4.png"
36
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-4.png"
36 37
           class="icon4"
37 38
           style="position: absolute;right:0;bottom:0;z-index:2;width: 77vw;"
38 39
           :class="{'active': currentPage === 1}"
@@ -40,7 +41,7 @@
40 41
         >
41 42
         <div class="centerLabel" style="z-index: 3">
42 43
           <img
43
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-11.png"
44
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-11.png"
44 45
             class="icon11"
45 46
             style="width: 36.5vw;"
46 47
             :class="{'active': currentPage === 1}"
@@ -51,7 +52,7 @@
51 52
             style="overflow: visible;position: relative;-webkit-transform-style: preserve-3d !important;transform-style: preserve-3d !important;"
52 53
           >
53 54
             <img
54
-              src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-2.png"
55
+              src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-2.png"
55 56
               class="icon2"
56 57
               style="width:68vw;transform: translateY(.2rem);-webkit-transform: translateY(.2rem);"
57 58
               :class="{'active': currentPage === 1}"
@@ -61,14 +62,14 @@
61 62
             <div class="circle circle2 centerLabel" :class="{'active': currentPage === 1}"></div>
62 63
           </div>
63 64
           <img
64
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-13.png"
65
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-13.png"
65 66
             class="icon13"
66 67
             style="width:56vw;display:inline-block;margin-top: .4rem;"
67 68
             :class="{'active': currentPage === 1}"
68 69
             alt
69 70
           >
70 71
           <img
71
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-1.png"
72
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-1.png"
72 73
             class="icon1"
73 74
             style="width: 35.7vw;margin-top: .2rem;"
74 75
             :class="{'active': currentPage === 1}"
@@ -77,154 +78,121 @@
77 78
           >
78 79
         </div>
79 80
       </div>
80
-      <div class="page2" :class="{'show': currentPage === 2}">
81
+      <div class="page2" :class="{'show': currentPage === 2 && imgSrc === null}">
81 82
         <img
82
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-7.png"
83
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-7.png"
83 84
           class="icon7"
84 85
           style="position: absolute;left:0;top:0;z-index:2;width: 100vw;"
85 86
           :class="{'active': currentPage === 2}"
86 87
           alt
87 88
         >
88 89
         <img
89
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-6.png"
90
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-6.png"
90 91
           class="icon6"
91 92
           style="position: absolute;right:0;bottom:0;z-index:2;width: 100vw;"
92 93
           :class="{'active': currentPage === 2}"
93 94
           alt
94 95
         >
95 96
         <img
96
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-5.png"
97
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-5.png"
97 98
           class="icon5"
98 99
           style="position: absolute;right:9vw;bottom:3.5vh;z-index:11;width: 43.7vw;"
99 100
           :class="{'active': currentPage === 2}"
100 101
           alt
101 102
         >
103
+        <div class="nextStep" v-if="userSelectFlag.length" @click="nextStep">
104
+          <span>下一步</span>
105
+        </div>
102 106
         <div class="centerLabel">
103 107
           <img
104
-            src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-13.png"
108
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-13.png"
105 109
             class="icon13"
106 110
             style="width:66vw;display:inline-block;margin-top: .4rem;"
107 111
             :class="{'active': currentPage === 2}"
108 112
             alt
109 113
           >
110 114
           <div class="content">
111
-            <span class="flagItem flagItem1" :class="{'active': currentPage === 2}">努力的目标</span>
112
-            <span class="flagItem flagItem2" :class="{'active': currentPage === 2}">努力的目标</span>
113
-            <span class="flagItem flagItem3" :class="{'active': currentPage === 2}">努力的目标</span>
114
-            <span class="flagItem flagItem4" :class="{'active': currentPage === 2}">努力的目标</span>
115
-            <span class="flagItem flagItem5" :class="{'active': currentPage === 2}">努力的目标</span>
116
-            <span class="flagItem flagItem6" :class="{'active': currentPage === 2}">努力的目标</span>
117
-            <span class="flagItem flagItem7" :class="{'active': currentPage === 2}">努力的目标</span>
118
-            <span class="flagItem flagItem8" :class="{'active': currentPage === 2}">努力的目标</span>
119
-            <span class="flagItem flagItem9" :class="{'active': currentPage === 2}">努力的目标</span>
120
-            <span class="flagItem flagItem10" :class="{'active': currentPage === 2}">努力的目标</span>
115
+            <span
116
+              v-for="(item, index) in selectFlag"
117
+              :key="index"
118
+              class="flagItem"
119
+              :class="{'active': currentPage === 2, [`flagItem${index+1}`]: true, 'selected': item.select}"
120
+              @click="selectFlagItem(item, index)"
121
+            >{{item.value}}</span>
121 122
           </div>
122 123
         </div>
123 124
       </div>
124
-      <div class="page3" :hidden="currentPage !== 3">
125
-        <img
126
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-8.png"
127
-          class="icon8"
128
-          style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
129
-          alt
130
-        >
131
-        <img
132
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-9.png"
133
-          class="icon9"
134
-          style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
135
-          alt
136
-        >
137
-        <div class="centerLabel">
138
-          <span>亲爱的你,新年好</span>
139
-          <span>亲爱的你,新年好</span>
140
-          <span>亲爱的你,新年好</span>
141
-          <span>亲爱的你,新年好</span>
142
-          <span>亲爱的你,新年好</span>
143
-          <span>亲爱的你,新年好</span>
144
-          <span>亲爱的你,新年好</span>
145
-          <span>亲爱的你,新年好</span>
146
-          <span>亲爱的你,新年好</span>
147
-          <span>亲爱的你,新年好</span>
148
-        </div>
149
-      </div>
150
-      <div class="page4" :hidden="currentPage !== 4">
125
+      <div class="page3" :class="{'show': currentPage === 3 && imgSrc === null}">
151 126
         <img
152
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-8.png"
127
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-8.png"
153 128
           class="icon8"
154 129
           style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
155 130
           alt
156 131
         >
157 132
         <img
158
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-9.png"
133
+          src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-9.png"
159 134
           class="icon9"
160 135
           style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
161 136
           alt
162 137
         >
163
-        <div class="centerLabel">
164
-          <span>亲爱的你,新年好</span>
165
-          <span>亲爱的你,新年好</span>
166
-          <span>亲爱的你,新年好</span>
167
-          <span></span>
168
-          <span>亲爱的你,新年好</span>
169
-          <span>亲爱的你,新年好</span>
170
-          <span>亲爱的你,新年好</span>
171
-          <span>亲爱的你,新年好</span>
172
-          <span>亲爱的你,新年好</span>
173
-          <span>亲爱的你,新年好</span>
174
-        </div>
175
-      </div>
176
-      <div class="page5" :hidden="currentPage !== 5">
177
-        <img
178
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-8.png"
179
-          class="icon8"
180
-          style="position: absolute;left:0;bottom:0;z-index:2;width: 100vw;"
181
-          alt
182
-        >
183
-        <img
184
-          src="https://jingcheng-h5temp.oss-cn-shanghai.aliyuncs.com/20181229-images/icon-9.png"
185
-          class="icon9"
186
-          style="position: absolute;left:0;bottom:0;z-index:3;width: 100vw;"
187
-          alt
188
-        >
189
-        <div class="userIcon">
138
+        <div class="userIcon" style="z-index: 20;">
190 139
           <a>
191 140
             <img :src="userIcon" class="centerLabel cover" alt>
192 141
           </a>
193 142
         </div>
194
-        <div class="centerLabel">
195
-          <span>亲爱的你,新年好</span>
196
-          <span>亲爱的你,新年好</span>
197
-          <span>亲爱的你,新年好</span>
143
+        <div class="centerLabel" style="z-index: 20">
144
+          <img
145
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-15.png"
146
+            width="100%"
147
+            alt
148
+          >
198 149
           <span></span>
199
-          <span>亲爱的你,新年好</span>
200
-          <span>亲爱的你,新年好</span>
201
-          <span>亲爱的你,新年好</span>
202
-          <span>亲爱的你,新年好</span>
203
-          <span>亲爱的你,新年好</span>
204
-          <span>亲爱的你,新年好</span>
150
+          <img
151
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-16.png"
152
+            v-if="showEndTextIndex === 0"
153
+            width="100%"
154
+            alt
155
+          >
156
+          <img
157
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-17.png"
158
+            v-if="showEndTextIndex === 1"
159
+            width="100%"
160
+            alt
161
+          >
162
+          <img
163
+            src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-18.png"
164
+            v-if="showEndTextIndex === 2"
165
+            width="100%"
166
+            alt
167
+          >
205 168
         </div>
206 169
         <div class="bottomText">
207 170
           <div class="qrCode">
208 171
             <a>
209
-              <img :src="qrCode" class="centerLabel cover" alt>
172
+              <img src="http://wx.jinchengjiaye.com/h5-2019/static/images/icon-19.png" class="centerLabel cover" alt>
210 173
             </a>
211 174
           </div>
212 175
           <span>长按二维码</span>
213 176
           <span>祝福你的2019</span>
214 177
         </div>
215 178
       </div>
179
+      <div class="page4" :class="{'show': currentPage === 4 && imgSrc !== null}">
180
+        <img :src="imgSrc" width="100%" class="cover" alt>
181
+      </div>
216 182
     </div>
217 183
   </div>
218 184
 </template>
219 185
 
220 186
 <script>
187
+import html2canvas from 'html2canvas'
188
+import musicPlay from '../../util/music'
221 189
 export default {
222 190
   name: '',
223 191
   data () {
224 192
     return {
225 193
       showPage: false,
226 194
       imgNum: 0,
227
-      imgTotal: 18,
195
+      imgTotal: 19,
228 196
       currentPage: 0,
229 197
       userIcon: '',
230 198
       qrCode: '',
@@ -255,7 +223,11 @@ export default {
255 223
         '实现财务自由',
256 224
         '方案一次过',
257 225
         '男(女)神回复我信息'
258
-      ]
226
+      ],
227
+      selectFlag: [],
228
+      userSelectFlag: [],
229
+      showEndTextIndex: Math.floor(Math.random() * 3),
230
+      imgSrc: null
259 231
     }
260 232
   },
261 233
   computed: {
@@ -263,12 +235,40 @@ export default {
263 235
   components: {
264 236
   },
265 237
   created () {
238
+    '*********'.split('*').forEach(x => {
239
+      while (true) {
240
+        const inx = Math.floor(Math.random() * this.flagList.length)
241
+        const res = this.flagList[inx]
242
+        if (this.selectFlag.indexOf(res) === -1) {
243
+          this.selectFlag.push({
244
+            select: false,
245
+            value: res
246
+          })
247
+          break
248
+        }
249
+      }
250
+    })
266 251
   },
267 252
   mounted () {
268 253
     this.$nextTick(() => {
254
+      musicPlay('http://wx.jinchengjiaye.com/h5-2019/static/images/Thomas%20Greenberg.mp3')
269 255
     })
270 256
   },
271 257
   methods: {
258
+    nextStep () { // 下一步
259
+      this.currentPage = this.userSelectFlag.length ? 3 : 2
260
+      window.setTimeout(() => {
261
+        this.convert2canvas(document.getElementById('canvasPage')).then((res) => {
262
+          this.imgSrc = res
263
+          this.currentPage = 4
264
+        })
265
+      }, 300)
266
+    },
267
+    selectFlagItem (item, index) {
268
+      document.getElementsByClassName('flagItem')[index].style = 'transition: all .3s ease;-webkit-transition: all .3s ease;'
269
+      item.select = true
270
+      this.userSelectFlag.push(item)
271
+    },
272 272
     imgLoad () { // 图片加载进度存储
273 273
       this.imgNum += 1
274 274
       if (this.imgNum === this.imgTotal) {
@@ -280,6 +280,33 @@ export default {
280 280
     },
281 281
     returnImgNum () { // 图片加载进度读取
282 282
       return Math.floor((this.imgNum / this.imgTotal) * 100)
283
+    },
284
+    convert2canvas (dom) {
285
+      return new Promise((resolve, reject) => {
286
+        var shareContent = dom
287
+        var width = shareContent.offsetWidth // 获取dom 宽度
288
+        var height = shareContent.offsetHeight // 获取dom 高度
289
+        var canvas = document.createElement('canvas') // 创建一个canvas节点
290
+        var scale = 1 // 定义任意放大倍数 支持小数
291
+        canvas.width = width * scale // 定义canvas 宽度 * 缩放
292
+        canvas.height = height * scale // 定义canvas高度 *缩放
293
+        canvas.getContext('2d').scale(scale, scale) // 获取context,设置scale
294
+        var opts = {
295
+          scale: scale, // 添加的scale 参数
296
+          canvas: canvas, // 自定义 canvas
297
+          width: width, // dom 原始宽度
298
+          height: height,
299
+          useCORS: true // 【重要】开启跨域配置
300
+        }
301
+        html2canvas(shareContent, opts).then(function (canvas) {
302
+          var context = canvas.getContext('2d') // 【重要】关闭抗锯齿
303
+          context.mozImageSmoothingEnabled = false
304
+          context.webkitImageSmoothingEnabled = false
305
+          context.msImageSmoothingEnabled = false
306
+          context.imageSmoothingEnabled = false
307
+          resolve(canvas.toDataURL('image/jpeg'))
308
+        })
309
+      })
283 310
     }
284 311
   }
285 312
 }

+ 58
- 10
src/pages/home/page.scss 查看文件

@@ -108,6 +108,23 @@
108 108
         }
109 109
       }
110 110
       &.page2{
111
+        .nextStep{
112
+          padding: .02rem;
113
+          border: 2px solid #fff;
114
+          position: absolute;
115
+          right: 12vw;
116
+          bottom: 4.5vh;
117
+          z-index: 200;
118
+          display: inline-block;
119
+          span{
120
+            background: #de7ba2;
121
+            color: #fff;
122
+            font-size: .18rem;
123
+            display: inline-block;
124
+            line-height: .3rem;
125
+            padding: 0 .1rem;
126
+          }
127
+        }
111 128
         >.centerLabel{
112 129
           width: 100%;
113 130
           z-index: 11;
@@ -129,6 +146,7 @@
129 146
               display: inline-block;
130 147
               position: absolute;
131 148
               padding: 0 .1rem;
149
+              white-space: nowrap;
132 150
               z-index: 11;
133 151
               &:nth-child(2n){
134 152
                 transform: translateX(-1rem);
@@ -166,12 +184,15 @@
166 184
               background: #5bcff1;
167 185
               border-radius: .1rem;
168 186
               overflow: visible;
187
+              &.selected{
188
+                opacity: 0;
189
+              }
169 190
               &::after{
170 191
                 content: '';
171 192
                 border-color: #5bcff1 transparent transparent transparent;
172 193
                 border-width: .15rem;
173 194
                 bottom: -.24rem;
174
-                right: 50%;
195
+                right: 30%;
175 196
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
176 197
                 transform: rotateY(60deg) rotateZ(-20deg);
177 198
               }
@@ -185,12 +206,15 @@
185 206
               background: #f8b551;
186 207
               border-radius: .1rem;
187 208
               overflow: visible;
209
+              &.selected{
210
+                opacity: 0;
211
+              }
188 212
               &::after{
189 213
                 content: '';
190 214
                 border-color: #f8b551 transparent transparent transparent;
191 215
                 border-width: .15rem;
192 216
                 bottom: -.24rem;
193
-                left: 50%;
217
+                left: 30%;
194 218
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
195 219
                 transform: rotateY(60deg) rotateZ(20deg);
196 220
               }
@@ -204,12 +228,15 @@
204 228
               background: #de7ba2;
205 229
               border-radius: .1rem;
206 230
               overflow: visible;
231
+              &.selected{
232
+                opacity: 0;
233
+              }
207 234
               &::after{
208 235
                 content: '';
209 236
                 border-color: #de7ba2 transparent transparent transparent;
210 237
                 border-width: .15rem;
211 238
                 bottom: -.24rem;
212
-                left: 50%;
239
+                left: 30%;
213 240
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
214 241
                 transform: rotateY(60deg) rotateZ(-20deg);
215 242
               }
@@ -223,12 +250,15 @@
223 250
               background: #fdc17a;
224 251
               border-radius: .1rem;
225 252
               overflow: visible;
253
+              &.selected{
254
+                opacity: 0;
255
+              }
226 256
               &::after{
227 257
                 content: '';
228 258
                 border-color: #fdc17a transparent transparent transparent;
229 259
                 border-width: .15rem;
230 260
                 bottom: -.24rem;
231
-                right: 50%;
261
+                right: 30%;
232 262
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
233 263
                 transform: rotateY(60deg) rotateZ(20deg);
234 264
               }
@@ -242,12 +272,15 @@
242 272
               background: #f8b551;
243 273
               border-radius: .1rem;
244 274
               overflow: visible;
275
+              &.selected{
276
+                opacity: 0;
277
+              }
245 278
               &::after{
246 279
                 content: '';
247 280
                 border-color: #f8b551 transparent transparent transparent;
248 281
                 border-width: .15rem;
249 282
                 bottom: -.24rem;
250
-                left: 60%;
283
+                left: 30%;
251 284
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
252 285
                 transform: rotateY(60deg) rotateZ(-20deg);
253 286
               }
@@ -261,12 +294,15 @@
261 294
               background: #f8b551;
262 295
               border-radius: .1rem;
263 296
               overflow: visible;
297
+              &.selected{
298
+                opacity: 0;
299
+              }
264 300
               &::after{
265 301
                 content: '';
266 302
                 border-color: #f8b551 transparent transparent transparent;
267 303
                 border-width: .15rem;
268 304
                 bottom: -.24rem;
269
-                left: 50%;
305
+                left: 30%;
270 306
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
271 307
                 transform: rotateY(60deg) rotateZ(20deg);
272 308
               }
@@ -282,12 +318,15 @@
282 318
               overflow: visible;
283 319
               transform: translateX(-50%);
284 320
               -webkit-transform: translateX(-50%);
321
+              &.selected{
322
+                opacity: 0;
323
+              }
285 324
               &::after{
286 325
                 content: '';
287 326
                 border-color: #a57dd1 transparent transparent transparent;
288 327
                 border-width: .15rem;
289 328
                 bottom: -.24rem;
290
-                left: 60%;
329
+                left: 30%;
291 330
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
292 331
                 transform: rotateY(60deg) rotateZ(-20deg);
293 332
               }
@@ -301,12 +340,15 @@
301 340
               background: #f8b551;
302 341
               border-radius: .1rem;
303 342
               overflow: visible;
343
+              &.selected{
344
+                opacity: 0;
345
+              }
304 346
               &::after{
305 347
                 content: '';
306 348
                 border-color: #f8b551 transparent transparent transparent;
307 349
                 border-width: .15rem;
308 350
                 bottom: -.24rem;
309
-                left: 60%;
351
+                left: 30%;
310 352
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
311 353
                 transform: rotateY(60deg) rotateZ(-20deg);
312 354
               }
@@ -320,12 +362,15 @@
320 362
               background: #fdc17a;
321 363
               border-radius: .1rem;
322 364
               overflow: visible;
365
+              &.selected{
366
+                opacity: 0;
367
+              }
323 368
               &::after{
324 369
                 content: '';
325 370
                 border-color: #fdc17a transparent transparent transparent;
326 371
                 border-width: .15rem;
327 372
                 bottom: -.24rem;
328
-                left: 60%;
373
+                left: 30%;
329 374
                 -webkit-transform: rotateY(60deg) rotateZ(-20deg);
330 375
                 transform: rotateY(60deg) rotateZ(-20deg);
331 376
               }
@@ -339,12 +384,15 @@
339 384
               background: #f8b551;
340 385
               border-radius: .1rem;
341 386
               overflow: visible;
387
+              &.selected{
388
+                opacity: 0;
389
+              }
342 390
               &::after{
343 391
                 content: '';
344 392
                 border-color: #f8b551 transparent transparent transparent;
345 393
                 border-width: .15rem;
346 394
                 bottom: -.24rem;
347
-                left: 50%;
395
+                left: 30%;
348 396
                 -webkit-transform: rotateY(60deg) rotateZ(20deg);
349 397
                 transform: rotateY(60deg) rotateZ(20deg);
350 398
               }

+ 51
- 0
src/util/music.js 查看文件

@@ -0,0 +1,51 @@
1
+/* eslint-disable */
2
+export default function musicPlay (src) {
3
+  var className = 'play'
4
+  var trigger = 'ontouchend' in document ? 'touchstart' : 'click'
5
+  var $musci = document.createElement('div')
6
+  var $audio = document.createElement('audio')
7
+
8
+  function start () {
9
+    document.removeEventListener(trigger, start, false)
10
+    if (!$audio.paused) return
11
+    $audio.play()
12
+  }
13
+
14
+  function toggle () {
15
+    if (!$audio.paused) return $audio.pause()
16
+
17
+    $audio.currentTime = 0
18
+    $audio.play()
19
+  }
20
+
21
+  function play (e) {
22
+    $musci.classList.add(className)
23
+  }
24
+
25
+  function pause (e) {
26
+    $musci.classList.remove(className)
27
+  }
28
+
29
+  $musci.className = 'music-icon'
30
+  $musci.classList.add('paused')
31
+  $audio.src = src
32
+  $audio.id = "audio"
33
+  $audio.loop = true
34
+  $audio.volume = 0.5
35
+  document.body.appendChild($musci)
36
+  document.body.appendChild($audio)
37
+
38
+  $audio.addEventListener('play', play, false)
39
+  $audio.addEventListener('pause', pause, false)
40
+  $audio.addEventListener('ended', pause, false)
41
+  $musci.addEventListener('click', toggle, false)
42
+  try {
43
+    $audio.play()
44
+  } catch (err) {
45
+  }
46
+  document.addEventListener("WeixinJSBridgeReady", function () {
47
+    $audio.play()
48
+  }, false)
49
+
50
+  document.addEventListener(trigger, start, false)
51
+}

二進制
static/images/icon-1.png 查看文件


二進制
static/images/icon-10.png 查看文件


二進制
static/images/icon-11.png 查看文件


二進制
static/images/icon-12.png 查看文件


二進制
static/images/icon-13.png 查看文件


二進制
static/images/icon-14.png 查看文件


二進制
static/images/icon-15.png 查看文件


二進制
static/images/icon-16.png 查看文件


二進制
static/images/icon-17.png 查看文件


二進制
static/images/icon-18.png 查看文件


二進制
static/images/icon-19.png 查看文件


二進制
static/images/icon-2.png 查看文件


二進制
static/images/icon-3.png 查看文件


二進制
static/images/icon-4.png 查看文件


二進制
static/images/icon-5.png 查看文件


二進制
static/images/icon-6.png 查看文件


二進制
static/images/icon-7.png 查看文件


二進制
static/images/icon-8.png 查看文件


二進制
static/images/icon-9.png 查看文件