增加抽奖结束时的结果动画,使中奖动画更自然
Showing
2 changed files
with
52 additions
and
17 deletions
... | @@ -19,18 +19,20 @@ | ... | @@ -19,18 +19,20 @@ |
19 | </li> | 19 | </li> |
20 | </ul> | 20 | </ul> |
21 | </div> | 21 | </div> |
22 | <div id="resbox" v-show="showRes"> | 22 | <transition name="bounce"> |
23 | <p @click="showRes = false">{{ categoryName }}抽奖结果:</p> | 23 | <div id="resbox" v-show="showRes"> |
24 | <span | 24 | <p @click="showRes = false">{{ categoryName }}抽奖结果:</p> |
25 | v-for="item in resArr" | 25 | <span |
26 | :key="item" | 26 | v-for="item in resArr" |
27 | class="itemres" | 27 | :key="item" |
28 | :style="resCardStyle" | 28 | class="itemres" |
29 | @click="showRes = false" | 29 | :style="resCardStyle" |
30 | > | 30 | @click="showRes = false" |
31 | {{ item }} | 31 | > |
32 | </span> | 32 | {{ item }} |
33 | </div> | 33 | </span> |
34 | </div> | ||
35 | </transition> | ||
34 | 36 | ||
35 | <LotteryConfig :visible.sync="showConfig" @resetconfig="reloadTagCanvas" /> | 37 | <LotteryConfig :visible.sync="showConfig" @resetconfig="reloadTagCanvas" /> |
36 | <Tool @toggle="toggle" @resetConfig="reloadTagCanvas" :running="running" /> | 38 | <Tool @toggle="toggle" @resetConfig="reloadTagCanvas" :running="running" /> |
... | @@ -61,7 +63,7 @@ export default { | ... | @@ -61,7 +63,7 @@ export default { |
61 | 63 | ||
62 | computed: { | 64 | computed: { |
63 | resCardStyle() { | 65 | resCardStyle() { |
64 | const style = {}; | 66 | const style = { fontSize: '30px' }; |
65 | const { number } = this.config; | 67 | const { number } = this.config; |
66 | if (number < 100) { | 68 | if (number < 100) { |
67 | style.fontSize = '100px'; | 69 | style.fontSize = '100px'; |
... | @@ -182,9 +184,7 @@ export default { | ... | @@ -182,9 +184,7 @@ export default { |
182 | if (this.running) { | 184 | if (this.running) { |
183 | window.TagCanvas.SetSpeed('rootcanvas', speed()); | 185 | window.TagCanvas.SetSpeed('rootcanvas', speed()); |
184 | this.reloadTagCanvas(); | 186 | this.reloadTagCanvas(); |
185 | setTimeout(() => { | 187 | this.showRes = true; |
186 | this.showRes = true; | ||
187 | }, 300); | ||
188 | } else { | 188 | } else { |
189 | this.showRes = false; | 189 | this.showRes = false; |
190 | const { number } = config; | 190 | const { number } = config; |
... | @@ -257,6 +257,12 @@ export default { | ... | @@ -257,6 +257,12 @@ export default { |
257 | color: #ccc; | 257 | color: #ccc; |
258 | font-size: 12px; | 258 | font-size: 12px; |
259 | } | 259 | } |
260 | .bounce-enter-active { | ||
261 | animation: bounce-in 1.5s; | ||
262 | } | ||
263 | .bounce-leave-active { | ||
264 | animation: bounce-in 0.2s reverse; | ||
265 | } | ||
260 | } | 266 | } |
261 | #main { | 267 | #main { |
262 | height: 100%; | 268 | height: 100%; |
... | @@ -282,7 +288,6 @@ export default { | ... | @@ -282,7 +288,6 @@ export default { |
282 | border-radius: 4px; | 288 | border-radius: 4px; |
283 | border: 1px solid #ccc; | 289 | border: 1px solid #ccc; |
284 | line-height: 160px; | 290 | line-height: 160px; |
285 | font-size: 80px; | ||
286 | font-weight: bold; | 291 | font-weight: bold; |
287 | margin-right: 20px; | 292 | margin-right: 20px; |
288 | margin-top: 20px; | 293 | margin-top: 20px; | ... | ... |
... | @@ -16,3 +16,33 @@ | ... | @@ -16,3 +16,33 @@ |
16 | left: -400%; | 16 | left: -400%; |
17 | } | 17 | } |
18 | } | 18 | } |
19 | |||
20 | @-webkit-keyframes bounce-in { | ||
21 | 0% { | ||
22 | -webkit-transform: translateX(-50%) translateY(-50%) scale(0); | ||
23 | transform: translateX(-50%) translateY(-50%) scale(0); | ||
24 | } | ||
25 | 50% { | ||
26 | -webkit-transform: translateX(-50%) translateY(-50%) scale(1.5); | ||
27 | transform: translateX(-50%) translateY(-50%) scale(1.5); | ||
28 | } | ||
29 | 100% { | ||
30 | -webkit-transform: translateX(-50%) translateY(-50%) scale(1); | ||
31 | transform: translateX(-50%) translateY(-50%) scale(1); | ||
32 | } | ||
33 | } | ||
34 | |||
35 | @keyframes bounce-in { | ||
36 | 0% { | ||
37 | -webkit-transform: translateX(-50%) translateY(-50%) scale(0); | ||
38 | transform: translateX(-50%) translateY(-50%) scale(0); | ||
39 | } | ||
40 | 50% { | ||
41 | -webkit-transform: translateX(-50%) translateY(-50%) scale(1.5); | ||
42 | transform: translateX(-50%) translateY(-50%) scale(1.5); | ||
43 | } | ||
44 | 100% { | ||
45 | -webkit-transform: translateX(-50%) translateY(-50%) scale(1); | ||
46 | transform: translateX(-50%) translateY(-50%) scale(1); | ||
47 | } | ||
48 | } | ... | ... |
-
Please register or sign in to post a comment