Yansen 2 년 전
부모
커밋
4e852ee83a
6개의 변경된 파일52개의 추가작업 그리고 103개의 파일을 삭제
  1. 0
    41
      src/pages/pg3/flower.vue
  2. 0
    56
      src/pages/pg3/flower1.vue
  3. 7
    1
      src/pages/pg3/index.vue
  4. 2
    1
      src/pages/pg4/Rule.vue
  5. 40
    2
      src/utils/preload.js
  6. 3
    2
      src/utils/resources.js

+ 0
- 41
src/pages/pg3/flower.vue 파일 보기

@@ -1,41 +0,0 @@
1
-<template>
2
-  <div class="flower">
3
-    <img src="/images/pg3/线轮廓.png" alt="">
4
-    <Flower1 class="bg-lv1" />
5
-  </div>
6
-</template>
7
-
8
-<script setup>
9
-import Flower1 from './flower1.vue';
10
-</script>
11
-
12
-<style lang="less" scoped>
13
-.flower {
14
-  position: relative;
15
-  width: 64vw;
16
-  height: 64vw;
17
-  display: flex;
18
-  justify-content: center;
19
-  align-items: center;
20
-
21
-  & > img {
22
-    z-index: 0;
23
-    position: absolute;
24
-    display: block;
25
-    height: 100%;
26
-    right: 0;
27
-  }
28
-
29
-  // background-image: url(./images/pg3/线轮廓.png);
30
-  // background-size: 100% 100%;
31
-  // background-repeat: no-repeat;
32
-  // background-position-x: 16.67vw;
33
-
34
-  .bg-lv1 {
35
-    flex: none;
36
-    width: 56vw;
37
-    height: 56vw;
38
-    z-index: 1;
39
-  }
40
-}
41
-</style>

+ 0
- 56
src/pages/pg3/flower1.vue 파일 보기

@@ -1,56 +0,0 @@
1
-<template>
2
-<div class="flower1">
3
-  <div class="fpart-1 abs">
4
-    <img src="/images/pg3/组1.png" alt="">
5
-  </div>
6
-  <div class="fpart-2 abs">
7
-    <img src="/images/pg3/组2.png" alt="">
8
-  </div>
9
-  <div class="fpart-3 abs">
10
-    <img src="/images/pg3/组3.png" alt="">
11
-  </div>
12
-  <div class="fpart-4 abs">
13
-    <img src="/images/pg3/组4.png" alt="">
14
-  </div>
15
-</div>
16
-</template>
17
-
18
-<script setup>
19
-
20
-</script>
21
-
22
-<style lang="less" scoped>
23
-.flower1 {
24
-  position: relative;
25
-  background-image: url(/images/pg3/花朵.png);
26
-  background-size: 100% 100%;
27
-
28
-  & > div {
29
-    width: 50%;
30
-    height: 50%;
31
-    box-sizing: border-box;
32
-    padding: 8px;
33
-
34
-    img {
35
-      width: 100%;
36
-    }
37
-  }
38
-
39
-  .fpart-1 {
40
-    top: 0;
41
-    left: 25%;
42
-  }
43
-  .fpart-2 {
44
-    top: 25%;
45
-    right: 0;
46
-  }
47
-  .fpart-3 {
48
-    left: 25%;
49
-    bottom: 0;
50
-  }
51
-  .fpart-4 {
52
-    left: 0;
53
-    top: 25%;
54
-  }
55
-}
56
-</style>

+ 7
- 1
src/pages/pg3/index.vue 파일 보기

@@ -26,7 +26,7 @@
26 26
 
27 27
     <div class="btn-box">
28 28
       <Btn class="btn" @click="showPerson = true">人物采访</Btn>
29
-      <Btn class="btn">视频</Btn>
29
+      <Btn class="btn" @click="onVideo">视频</Btn>
30 30
     </div>
31 31
 
32 32
     <Persons v-if="showPerson" @cancel="showPerson = false" />
@@ -35,14 +35,20 @@
35 35
 
36 36
 <script setup>
37 37
   import { onBeforeUnmount, onMounted, ref } from 'vue';
38
+  import { useRouter } from 'vue-router';
38 39
   import Bell from '@/components/Bell.vue';
39 40
   import Btn from '@/components/Btn.vue';
40 41
   import Animate from '@/components/Animate.vue';
41 42
   import Persons from './Persons.vue';
42 43
   import usePageShow from '../usePageShow';
43 44
 
45
+  const router = useRouter();
44 46
   const [pgRef, show] = usePageShow(0.3);
45 47
   const showPerson = ref(false);
48
+
49
+  const onVideo = () => {
50
+    router.push('/pg4')
51
+  }
46 52
 </script>
47 53
 
48 54
 

+ 2
- 1
src/pages/pg4/Rule.vue 파일 보기

@@ -33,11 +33,12 @@
33 33
   h3 {
34 34
     font-size: 18px;
35 35
     font-size: 700;
36
+    margin-bottom: 0;
36 37
   }
37 38
 
38 39
   ul {
39 40
     text-align: left;
40
-    margin-top: 0;
41
+    margin-top: 10px;
41 42
   }
42 43
 }
43 44
 </style>

+ 40
- 2
src/utils/preload.js 파일 보기

@@ -1,4 +1,4 @@
1
-import { resources } from "./resources";
1
+import { resources, videos, audios } from "./resources";
2 2
 
3 3
 export function preload(onProgress) {
4 4
 
@@ -18,7 +18,7 @@ export function preload(onProgress) {
18 18
   }, [])
19 19
 
20 20
   return new Promise((resolve, reject) => {
21
-    const total = images.length;
21
+    const total = images.length + videos.length + audios.length;
22 22
     let cursor = 0;
23 23
 
24 24
     const callback = (e, isError) => {
@@ -29,11 +29,49 @@ export function preload(onProgress) {
29 29
       }
30 30
     }
31 31
 
32
+    // 先加载图片
32 33
     for (let src of images) {
33 34
       const img = document.createElement('img');
34 35
       img.onload = e => callback(e, false);
35 36
       img.onerror = e => callback(e, true);
36 37
       img.src = src;
37 38
     }
39
+
40
+    // 再加载视频
41
+    for (let src of videos) {
42
+      let vid = document.createElement('video');
43
+      const cb = () => {
44
+        callback();
45
+        vid.pause();
46
+        vid.removeEventListener('progress', cb);
47
+        vid.removeEventListener('error', cb);
48
+        vid = null;
49
+        console.log('-----加载视频----')
50
+      }
51
+      vid.addEventListener('progress', cb);
52
+      vid.addEventListener('error', cb);
53
+      vid.muted = true;
54
+      vid.autoplay = true;
55
+      vid.src = src;
56
+    }
57
+
58
+    // 再加载音频
59
+    for (let src of audios) {
60
+      let aud = document.createElement('audio');
61
+      const cb = () => {
62
+        callback();
63
+        aud.pause();
64
+        aud.removeEventListener('progress', cb);
65
+        aud.removeEventListener('error', cb);
66
+        aud = null;
67
+        console.log('-----加载音频----')
68
+      }
69
+      aud.addEventListener('progress', cb);
70
+      aud.addEventListener('error', cb);
71
+      aud.muted = true;
72
+      aud.autoplay = true;
73
+      aud.src = src;
74
+    }
75
+
38 76
   })
39 77
 }

+ 3
- 2
src/utils/resources.js 파일 보기

@@ -1,10 +1,11 @@
1 1
 
2 2
 export const videos = [
3
-  './video/first.mp4',
3
+  './video/紫金草走向世界010.mp4',
4
+  './video/和平宣言-视频-压缩.mp4',
4 5
 ]
5 6
 
6 7
 export const audios = [
7
-  // './audio/audio.mp3'
8
+  './audio/audio.mp3'
8 9
 ]
9 10
 
10 11
 // 预加载资源