Yansen 2 years ago
parent
commit
1fd06bbaa0

+ 1
- 1
index.html View File

14
     <link rel="stylesheet" href="./slidePage/slidePage.min.css">
14
     <link rel="stylesheet" href="./slidePage/slidePage.min.css">
15
 
15
 
16
     <link rel="stylesheet" href="./fonts/SourceHanSerifCN-Medium/SourceHanSerifCN-Medium.css">
16
     <link rel="stylesheet" href="./fonts/SourceHanSerifCN-Medium/SourceHanSerifCN-Medium.css">
17
-    <title>南京-紫金草行动</title>
17
+    <title>向世界讲述——南京1937</title>
18
     <!-- <script src="./vconsole.min.js"></script>
18
     <!-- <script src="./vconsole.min.js"></script>
19
     <script>
19
     <script>
20
       const vConsole = new VConsole();
20
       const vConsole = new VConsole();

+ 4
- 1
src/App.vue View File

48
   }
48
   }
49
   window.addEventListener('touchstart', onTouch);
49
   window.addEventListener('touchstart', onTouch);
50
 
50
 
51
+  // 初始化一些数据
52
+  localStorage.setItem('page', 1);
53
+
51
 </script>
54
 </script>
52
 
55
 
53
 <template>
56
 <template>
54
-  <Loading v-if="!show" class="loading" @ready="(show = true)" />
57
+  <Loading v-if="!show" class="loading" @ready="show = true" />
55
   <router-view v-else></router-view>
58
   <router-view v-else></router-view>
56
 
59
 
57
   <audio ref="el" src="/audio/audio.mp3" style="max-width: 0" loop preload="auto"></audio>
60
   <audio ref="el" src="/audio/audio.mp3" style="max-width: 0" loop preload="auto"></audio>

+ 1
- 1
src/components/Modal.vue View File

41
   left: 0;
41
   left: 0;
42
   width: 100vw;
42
   width: 100vw;
43
   height: 100vh;
43
   height: 100vh;
44
-  z-index: 1000;
44
+  z-index: 2000;
45
   animation-duration: 200ms;
45
   animation-duration: 200ms;
46
   background: transparent;
46
   background: transparent;
47
     background: rgba(0, 0, 0, 0.5);
47
     background: rgba(0, 0, 0, 0.5);

+ 5
- 0
src/pages/FirstVideo.vue View File

5
       playsinline
5
       playsinline
6
       src="/video/开始视频.mp4"
6
       src="/video/开始视频.mp4"
7
       autoplay="autoplay"
7
       autoplay="autoplay"
8
+      controls="controls"
8
       ref="vidRef"
9
       ref="vidRef"
9
       @play="pause()"
10
       @play="pause()"
10
       @pause="play()"
11
       @pause="play()"
26
 
27
 
27
 onMounted(() => {
28
 onMounted(() => {
28
   vidRef.value.play();
29
   vidRef.value.play();
30
+
31
+  document.addEventListener('WeixinJSBridgeReady', () => {
32
+    vidRef.value.play();
33
+  });
29
 })
34
 })
30
 
35
 
31
 </script>
36
 </script>

+ 2
- 1
src/pages/Loading.vue View File

1
 <template>
1
 <template>
2
-  <div class="page pg-bg loading-pg" @click="onClick">
2
+  <div class="page pg-bg loading-pg" @click="onClick" @touchmove="onClick">
3
     <div class="loading-bg">
3
     <div class="loading-bg">
4
       <img class="fl-bg1 abs" src="/images/fl-bg.png" alt="">
4
       <img class="fl-bg1 abs" src="/images/fl-bg.png" alt="">
5
       <img class="fl-bg2 abs" src="/images/fl-bg.png" alt="">
5
       <img class="fl-bg2 abs" src="/images/fl-bg.png" alt="">
41
 
41
 
42
     const t = setTimeout(() => {
42
     const t = setTimeout(() => {
43
       emit('ready');
43
       emit('ready');
44
+      clearTimeout(t)
44
     }, 1600);
45
     }, 1600);
45
   }
46
   }
46
 
47
 

+ 6
- 2
src/pages/index.vue View File

26
 
26
 
27
 const { play, pause } = useModel('audio');
27
 const { play, pause } = useModel('audio');
28
 
28
 
29
+const page = ref(localStorage.getItem('page'));
30
+
29
 onMounted(() => {
31
 onMounted(() => {
30
   // parallaxing()
32
   // parallaxing()
31
   play()
33
   play()
33
   var slidepage = new window.slidePage({
35
   var slidepage = new window.slidePage({
34
     slideContainer: '.slide-container',
36
     slideContainer: '.slide-container',
35
     slidePages: '.slide-page',
37
     slidePages: '.slide-page',
36
-    page: 1,
38
+    page: page.value || 1,
37
     refresh: false,
39
     refresh: false,
38
     dragMode: false,
40
     dragMode: false,
39
     useWheel: true,
41
     useWheel: true,
42
 
44
 
43
     // Events
45
     // Events
44
     before: function(origin,direction,target){},
46
     before: function(origin,direction,target){},
45
-    after: function(origin,direction,target){},
47
+    after: function(origin,direction,target){
48
+      localStorage.setItem('page', target);
49
+    },
46
     });
50
     });
47
 })
51
 })
48
 </script>
52
 </script>

+ 5
- 0
src/pages/pg1/index.vue View File

57
 </script>
57
 </script>
58
 
58
 
59
 <style lang="less" scoped>
59
 <style lang="less" scoped>
60
+  .pg1 {
61
+    height: auto;
62
+    min-height: 100%;
63
+  }
64
+
60
   .bg {
65
   .bg {
61
     position: absolute;
66
     position: absolute;
62
     z-index: 0;
67
     z-index: 0;

+ 8
- 1
src/pages/pg2/index.vue View File

1
 <template>
1
 <template>
2
-  <div class="page pg-bg pg2" parallax ref="pgRef">
2
+  <div class="page pg-bg pg2" parallax ref="pgRef" @click="onClickTest">
3
     <div class="bg">
3
     <div class="bg">
4
       <div>
4
       <div>
5
         <Animate
5
         <Animate
104
   router.push(`/pg2-2`);
104
   router.push(`/pg2-2`);
105
 };
105
 };
106
 
106
 
107
+const onClickTest = e => {
108
+  console.log(e)
109
+}
110
+
107
 const flowerAnimate = reactive({
111
 const flowerAnimate = reactive({
108
   left: "",
112
   left: "",
109
   right: "",
113
   right: "",
139
 <style lang="less" scoped>
143
 <style lang="less" scoped>
140
 .pg2 {
144
 .pg2 {
141
   overflow: hidden;
145
   overflow: hidden;
146
+  height: auto;
147
+  min-height: 100%;
148
+
142
   .bg {
149
   .bg {
143
     position: absolute;
150
     position: absolute;
144
     z-index: 0;
151
     z-index: 0;

+ 5
- 1
src/pages/pg3/index.vue View File

153
 <style lang="less" scoped>
153
 <style lang="less" scoped>
154
 .pg3 {
154
 .pg3 {
155
   position: relative;
155
   position: relative;
156
+  height: auto;
157
+  min-height: 100%;
158
+  box-sizing: border-box;
159
+  padding-bottom: 50px;
156
 
160
 
157
   .pg3-bg {
161
   .pg3-bg {
158
     position: absolute;
162
     position: absolute;
183
   .header {
187
   .header {
184
     width: 30vw;
188
     width: 30vw;
185
     margin: auto;
189
     margin: auto;
186
-    margin-top: 30px;
190
+    // margin-top: 30px;
187
     position: relative;
191
     position: relative;
188
   }
192
   }
189
 
193
 

+ 2
- 2
src/pages/pg4/Share.vue View File

4
       <img src="/images/pg4/btn_share.png" alt="" @click="emit('share')">
4
       <img src="/images/pg4/btn_share.png" alt="" @click="emit('share')">
5
       <img src="/images/pg4/btn_badge.png" alt="" @click="emit('badge')">
5
       <img src="/images/pg4/btn_badge.png" alt="" @click="emit('badge')">
6
     </div>
6
     </div>
7
-    <div class="share-txt txt">
7
+    <!-- <div class="share-txt txt">
8
       目前总种植数量: {{user.num}}
8
       目前总种植数量: {{user.num}}
9
-    </div>
9
+    </div> -->
10
   </div>
10
   </div>
11
 </template>
11
 </template>
12
 
12
 

+ 28
- 2
src/pages/pg4/video.vue View File

7
         src="/video/和平宣言-视频-压缩.mp4"
7
         src="/video/和平宣言-视频-压缩.mp4"
8
         preload="preload"
8
         preload="preload"
9
         autoplay="autoplay"
9
         autoplay="autoplay"
10
+        :controls="controls"
10
         ref="mediaRef"
11
         ref="mediaRef"
11
         @ended="show = true"
12
         @ended="show = true"
12
         @play="pause()"
13
         @play="pause()"
29
   const router = useRouter();
30
   const router = useRouter();
30
   const mediaRef = ref();
31
   const mediaRef = ref();
31
   const show = ref(false);
32
   const show = ref(false);
33
+  const controls = ref();
32
 
34
 
33
   const onReplay = () => {
35
   const onReplay = () => {
34
     mediaRef.value.play();
36
     mediaRef.value.play();
36
   };
38
   };
37
 
39
 
38
   const onNext = () => {
40
   const onNext = () => {
39
-    router.push("/pg4/plant");
41
+    router.replace("/pg4/plant");
40
   };
42
   };
41
 
43
 
42
   onMounted(() => {
44
   onMounted(() => {
43
     // 自动播放
45
     // 自动播放
44
-    mediaRef.value.play();
46
+    try {
47
+
48
+      const t = setTimeout(() => {
49
+        clearTimeout(t);
50
+      
51
+        // 可能抛出异步异常
52
+        const p = mediaRef.value.play();
53
+        if (p) {
54
+          p.then(() => {
55
+            mediaRef.value.play();
56
+          }).catch(err => {
57
+            console.log('--play-err---', err)
58
+            controls.value = "controls";
59
+          })
60
+        }
61
+
62
+      }, 300);
63
+    } catch (err) {
64
+      console.log('---err---', err)
65
+      controls.value = "controls";
66
+    }
67
+
68
+    // document.addEventListener('WeixinJSBridgeReady', () => {
69
+    //   mediaRef.value.play();
70
+    // });
45
   });
71
   });
46
 
72
 
47
 </script>
73
 </script>

+ 2
- 2
src/router.js View File

3
 
3
 
4
 const routes = [
4
 const routes = [
5
   // { path: '/', component: () => import('@/pages/Language.vue') },
5
   // { path: '/', component: () => import('@/pages/Language.vue') },
6
-  { path: '/', component: () => import('@/pages/FirstVideo.vue') },
7
-  { path: '/index', component: () => import('@/pages/index.vue') },
6
+  // { path: '/', component: () => import('@/pages/FirstVideo.vue') },
7
+  { path: '/', component: () => import('@/pages/index.vue') },
8
   { path: '/bk1', component: () => import('@/pages/bk1/index.vue') },
8
   { path: '/bk1', component: () => import('@/pages/bk1/index.vue') },
9
   { path: '/pg2-2', component: () => import('@/pages/pg2-2/index.vue') },
9
   { path: '/pg2-2', component: () => import('@/pages/pg2-2/index.vue') },
10
   { path: '/pg4', component: () => import('@/pages/pg4/video.vue') },
10
   { path: '/pg4', component: () => import('@/pages/pg4/video.vue') },