|
@@ -9,17 +9,8 @@
|
9
|
9
|
<div class="img-cover">
|
10
|
10
|
</div>
|
11
|
11
|
</div>
|
12
|
|
- <div class="txt loading-text">
|
13
|
|
- <div>
|
14
|
|
- <span class="txt-shine">L</span>
|
15
|
|
- <span class="txt-shine">o</span>
|
16
|
|
- <span class="txt-shine">a</span>
|
17
|
|
- <span class="txt-shine">d</span>
|
18
|
|
- <span class="txt-shine">i</span>
|
19
|
|
- <span class="txt-shine">n</span>
|
20
|
|
- <span class="txt-shine">g</span>
|
21
|
|
- <span class="txt-shine">..</span>
|
22
|
|
- </div>
|
|
12
|
+ <div class="txt">
|
|
13
|
+ <LoadingTxt />
|
23
|
14
|
<div>{{percent}}</div>
|
24
|
15
|
</div>
|
25
|
16
|
</div>
|
|
@@ -35,6 +26,7 @@
|
35
|
26
|
import { computed, onMounted, ref } from 'vue';
|
36
|
27
|
import Bell from '@/components/Bell.vue';
|
37
|
28
|
import DownArrow from '@/components/DownArrow.vue';
|
|
29
|
+ import LoadingTxt from './LoadingTxt.vue';
|
38
|
30
|
import { preload } from '@/utils/preload';
|
39
|
31
|
import throttle from '@/utils/throttle';
|
40
|
32
|
|
|
@@ -44,9 +36,8 @@
|
44
|
36
|
const finished = ref(false);
|
45
|
37
|
|
46
|
38
|
const onClick = () => {
|
47
|
|
- // if (!finished.value) return;
|
48
|
|
-
|
49
|
|
- // emit('ready');
|
|
39
|
+ if (!finished.value) return;
|
|
40
|
+ emit('ready');
|
50
|
41
|
}
|
51
|
42
|
|
52
|
43
|
const callback = (val) => {
|
|
@@ -57,6 +48,7 @@
|
57
|
48
|
|
58
|
49
|
onMounted(() => {
|
59
|
50
|
preload(throttle(callback, 100)).then(() => {
|
|
51
|
+ percent.value = `${100}%`
|
60
|
52
|
finished.value = true;
|
61
|
53
|
// emit('ready');
|
62
|
54
|
});
|
|
@@ -119,66 +111,6 @@
|
119
|
111
|
|
120
|
112
|
}
|
121
|
113
|
|
122
|
|
- .loading-text {
|
123
|
|
- margin-left: 24px;
|
124
|
|
- flex: none;
|
125
|
|
- display: inline-block;
|
126
|
|
- font-size: 24px;
|
127
|
|
-
|
128
|
|
- span {
|
129
|
|
- display: inline-block;
|
130
|
|
- padding: 0 2px;
|
131
|
|
- color: #434444;
|
132
|
|
- opacity: 1;
|
133
|
|
-
|
134
|
|
- &:nth-child(1) {
|
135
|
|
- transform: rotate(-10deg);
|
136
|
|
- animation-delay: 0;
|
137
|
|
- }
|
138
|
|
- &:nth-child(2) {
|
139
|
|
- transform: rotate(-5deg) translateY(-2px);
|
140
|
|
- animation-delay: 600ms;
|
141
|
|
- }
|
142
|
|
- &:nth-child(3) {
|
143
|
|
- transform: rotate(5deg) translateY(-2px);
|
144
|
|
- animation-delay: 1200ms;
|
145
|
|
- }
|
146
|
|
- &:nth-child(4) {
|
147
|
|
- transform: rotate(10deg);
|
148
|
|
- animation-delay: 1800ms;
|
149
|
|
- }
|
150
|
|
- &:nth-child(5) {
|
151
|
|
- transform: rotate(5deg) translateY(2px);
|
152
|
|
- animation-delay: 2400ms;
|
153
|
|
- }
|
154
|
|
- &:nth-child(6) {
|
155
|
|
- transform: rotate(0) translateY(2px);
|
156
|
|
- animation-delay: 3000ms;
|
157
|
|
- }
|
158
|
|
- &:nth-child(7) {
|
159
|
|
- transform: rotate(-10deg) translateY(2px);
|
160
|
|
- animation-delay: 3600ms;
|
161
|
|
- }
|
162
|
|
- &:nth-child(8) {
|
163
|
|
- transform: rotate(-10deg) translateY(2px);
|
164
|
|
- animation-delay: 4200ms;
|
165
|
|
- }
|
166
|
|
- }
|
167
|
|
-
|
168
|
|
- .txt-shine {
|
169
|
|
- // animation: txt-shine 1.2s ease-in-out infinite alternate;
|
170
|
|
- }
|
171
|
|
-
|
172
|
|
- @keyframes txt-shine {
|
173
|
|
- from {
|
174
|
|
- opacity: 0;
|
175
|
|
- }
|
176
|
|
- to {
|
177
|
|
- opacity: 1;
|
178
|
|
- }
|
179
|
|
- }
|
180
|
|
-
|
181
|
|
- }
|
182
|
114
|
|
183
|
115
|
}
|
184
|
116
|
}
|