Yansen před 2 roky
rodič
revize
5e66ea4468

binární
public/images/loading/flower1.png Zobrazit soubor


binární
public/images/loading/flower2.png Zobrazit soubor


binární
public/images/pg3/1937.png Zobrazit soubor


binární
public/images/share.jpg Zobrazit soubor


binární
public/video/9年活动.mp4 Zobrazit soubor


binární
public/video/和平宣言-视频-压缩.mp4 Zobrazit soubor


binární
public/video/和平宣言.mp4 Zobrazit soubor


+ 1
- 1
src/App.vue Zobrazit soubor

@@ -3,7 +3,7 @@
3 3
   import { useModel } from '@zjxpcyc/vue-tiny-store';
4 4
   import wxsdk from '@/utils/wx'
5 5
   import track from '@/utils/track'
6
-  import Loading from './pages/Loading.vue';
6
+  import Loading from './pages/loading/index.vue';
7 7
 
8 8
   const { el, play } = useModel('audio');
9 9
   const { setUser, contries } = useModel('user');

+ 1
- 1
src/First.vue Zobrazit soubor

@@ -9,7 +9,7 @@
9 9
       loop="loop"
10 10
       x5-video-player-type="h5"
11 11
       id="firstVideo"
12
-      src="/video/和平宣言-视频-压缩.mp4"
12
+      src="/video/和平宣言.mp4"
13 13
     ></video>
14 14
   </div>
15 15
 </template>

src/pages/Loading.bak.vue → src/pages/loading/Loading.bak.vue Zobrazit soubor


src/pages/Loading.vue → src/pages/loading/Loading.vue Zobrazit soubor


+ 197
- 0
src/pages/loading/index.vue Zobrazit soubor

@@ -0,0 +1,197 @@
1
+<template>
2
+  <div class="page pg-bg loading-pg" @click="onClick" @touchmove="onClick">
3
+    <div class="header abs">
4
+      <Bell />
5
+    </div>
6
+    <div class="content">
7
+      <div class="loading-main">
8
+        <div class="main-img">
9
+          <div class="img-cover">
10
+          </div>
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>
23
+          <div>{{percent}}</div>
24
+        </div>
25
+      </div>
26
+    </div>
27
+    <DownArrow v-if="percent == '100%'" style="bottom: 120px" />
28
+    <!-- <div class="footer abs txt">
29
+      主办单位:中共南京市委网信办、共青团南京市委员会、南京广播电视集团、侵华日军南京大屠杀遇难同胞纪念馆
30
+    </div> -->
31
+  </div>
32
+</template>
33
+
34
+<script setup>
35
+  import { computed, onMounted, ref } from 'vue';
36
+  import Bell from '@/components/Bell.vue';
37
+  import DownArrow from '@/components/DownArrow.vue';
38
+  import { preload } from '@/utils/preload'
39
+
40
+  const emit = defineEmits(['ready']);
41
+  const finished = ref(false);
42
+
43
+  const percent = ref(0);
44
+
45
+  const onClick = () => {
46
+    if (percent.value !== '100%') return;
47
+
48
+    finished.value = true;
49
+    emit('ready');
50
+  }
51
+
52
+  const onProcess = (val) => {
53
+    const p = Number(val * 100).toFixed(2);
54
+    if (p >= 100) {
55
+      return percent.value = '100%';
56
+    } else {
57
+      return percent.value = `${p}%`
58
+    }
59
+  }
60
+
61
+  onMounted(() => {
62
+    preload(onProcess)
63
+  });
64
+</script>
65
+
66
+<style lang="less" scoped>
67
+.loading-pg {
68
+  width: 100%;
69
+  height: 100%;
70
+  overflow: hidden;
71
+
72
+  .content {
73
+    position: relative;
74
+    width: 100%;
75
+    height: 100%;
76
+    display: flex;
77
+    align-items: center;
78
+    justify-content: center;
79
+
80
+    .loading-main {
81
+      position: relative;
82
+      text-align: center;
83
+      width: 80vw;
84
+      flex: none;
85
+      display: flex;
86
+      align-items: center;
87
+      justify-content: center;
88
+
89
+      .main-img {
90
+        flex: none;
91
+        width: 20vw;
92
+        position: relative;
93
+
94
+        .img-cover {
95
+          position: relative;
96
+          width: 20vw;
97
+          height: 20vw;
98
+          z-index: 4;
99
+          background: url(/images/loading/flower2.png);
100
+          background-size: 100% 100%;
101
+
102
+          &::before {
103
+            content: '';
104
+            position: absolute;
105
+            width: 100%;
106
+            height: 100%;
107
+            top: 0;
108
+            left: 0;
109
+            background: url(/images/loading/flower1.png);
110
+            background-size: 100% 100%;
111
+            -webkit-mask: -webkit-linear-gradient(90deg, #000 v-bind(percent), transparent v-bind(percent));
112
+            -webkit-mask: linear-gradient(0, #000 v-bind(percent), transparent v-bind(percent));
113
+            mask: linear-gradient(0, #000 v-bind(percent), transparent v-bind(percent));
114
+          }
115
+        }
116
+
117
+      }
118
+
119
+      .loading-text {
120
+        margin-left: 24px;
121
+        flex: none;
122
+        display: inline-block;
123
+        font-size: 24px;
124
+
125
+        span {
126
+          display: inline-block;
127
+          padding: 0 2px;
128
+          color: #434444;
129
+          opacity: 1;
130
+
131
+          &:nth-child(1) {
132
+            transform: rotate(-10deg);
133
+            animation-delay: 0;
134
+          }
135
+          &:nth-child(2) {
136
+            transform: rotate(-5deg) translateY(-2px);
137
+            animation-delay: 600ms;
138
+          }
139
+          &:nth-child(3) {
140
+            transform: rotate(5deg) translateY(-2px);
141
+            animation-delay: 1200ms;
142
+          }
143
+          &:nth-child(4) {
144
+            transform: rotate(10deg);
145
+            animation-delay: 1800ms;
146
+          }
147
+          &:nth-child(5) {
148
+            transform: rotate(5deg) translateY(2px);
149
+            animation-delay: 2400ms;
150
+          }
151
+          &:nth-child(6) {
152
+            transform: rotate(0) translateY(2px);
153
+            animation-delay: 3000ms;
154
+          }
155
+          &:nth-child(7) {
156
+            transform: rotate(-10deg) translateY(2px);
157
+            animation-delay: 3600ms;
158
+          }
159
+          &:nth-child(8) {
160
+            transform: rotate(-10deg) translateY(2px);
161
+            animation-delay: 4200ms;
162
+          }
163
+        }
164
+
165
+        .txt-shine {
166
+          // animation: txt-shine 1.2s ease-in-out infinite alternate;
167
+        }
168
+
169
+        @keyframes txt-shine {
170
+          from {
171
+            opacity: 0;
172
+          }
173
+          to {
174
+            opacity: 1;
175
+          }
176
+        }
177
+
178
+      }
179
+
180
+    }
181
+  }
182
+
183
+  .header {
184
+    top: 24px;
185
+    right: 24px;
186
+    width: 40px;
187
+  }
188
+
189
+  .footer {
190
+    font-size: 12px;
191
+    text-align: center;
192
+    bottom: 12px;
193
+    left: 0;
194
+    padding: 0 16px;
195
+  }
196
+}
197
+</style>

+ 18
- 16
src/pages/pg3/index.vue Zobrazit soubor

@@ -17,7 +17,7 @@
17 17
       </p>
18 18
     </Animate>
19 19
     <div class="nanjing">
20
-      <div>
20
+      <div style="position: relative;">
21 21
         <Animate
22 22
           comp="img"
23 23
           src="/images/pg3/nan.png"
@@ -44,16 +44,18 @@
44 44
           :ready="show"
45 45
         />
46 46
       </div>
47
+      <div>
48
+        <Animate
49
+          class="nj-1937"
50
+          comp="img"
51
+          src="/images/pg3/1937.png"
52
+          name="animate__fadeInLeft"
53
+          delay="1000ms"
54
+          alt=""
55
+          :ready="show"
56
+        />
57
+      </div>
47 58
     </div>
48
-    <Animate
49
-      class="nj-1937"
50
-      comp="img"
51
-      src="/images/pg3/1937.png"
52
-      name="animate__zoomIn"
53
-      delay="500ms"
54
-      alt=""
55
-      :ready="show"
56
-    />
57 59
     <div class="content">
58 60
       <Animate
59 61
         class="txt"
@@ -195,7 +197,7 @@
195 197
   }
196 198
 
197 199
   .nanjing {
198
-    width: 50vw;
200
+    width: 70vw;
199 201
     margin: auto;
200 202
     display: flex;
201 203
     align-items: center;
@@ -206,15 +208,15 @@
206 208
     }
207 209
 
208 210
     .stele {
209
-      width: 8vw;
210
-      bottom: 2vw;
211
-      left: 8vw;
211
+      width: 6vw;
212
+      bottom: 1vw;
213
+      left: 6vw;
212 214
     }
213 215
   }
214 216
 
215 217
   .nj-1937 {
216
-    width: 16vw;
217
-    margin: auto;
218
+    width: 32vw;
219
+    margin-top: -5vw;
218 220
   }
219 221
 
220 222
   .content {

+ 1
- 1
src/pages/pg4/video.vue Zobrazit soubor

@@ -4,7 +4,7 @@
4 4
       <video
5 5
         webkit-playsinline
6 6
         playsinline
7
-        src="/video/和平宣言-视频-压缩.mp4"
7
+        src="/video/和平宣言.mp4"
8 8
         preload="preload"
9 9
         autoplay="autoplay"
10 10
         :controls="controls"

+ 1
- 1
src/utils/resources.js Zobrazit soubor

@@ -1,7 +1,7 @@
1 1
 
2 2
 export const videos = [
3 3
   // './video/紫金草走向世界010.mp4',
4
-  // './video/和平宣言-视频-压缩.mp4',
4
+  // './video/和平宣言.mp4',
5 5
 ]
6 6
 
7 7
 export const audios = [