lisenzhou 2 jaren geleden
bovenliggende
commit
f53b432b2d

BIN
public/images/pg2-2/照片1.png Bestand weergeven


BIN
public/images/pg2-2/照片2.png Bestand weergeven


BIN
public/images/pg2-2/照片3.png Bestand weergeven


BIN
public/images/pg2-2/照片4.png Bestand weergeven


+ 46
- 0
src/pages/pg2-2/Ink.vue Bestand weergeven

@@ -0,0 +1,46 @@
1
+<template>
2
+  <div class="ink-box">
3
+    <div>
4
+      <InkEffect class="ink-cover" :src="src" :active="active" />
5
+      <!-- <img class="ink-back" :src="src" alt="" > -->
6
+    </div>
7
+  </div>
8
+</template>
9
+
10
+<script setup>
11
+  import InkEffect from '@/components/InkEffect.vue';
12
+  const props = defineProps({
13
+    src: String,
14
+    active: Boolean,
15
+  })
16
+</script>
17
+
18
+<style lang="less" scoped>
19
+.ink-box {
20
+  width: 100%;
21
+  height: 100%;
22
+
23
+  & > div {
24
+    position: relative;
25
+    width: 100%;
26
+    height: 100%;
27
+
28
+    .ink-cover {
29
+      position: absolute;
30
+      width: 100%;
31
+      height: 100%;
32
+      top: 0;
33
+      left: 0;
34
+    }
35
+
36
+    .ink-back {
37
+      display: none;
38
+    }
39
+
40
+    img {
41
+      width: 100%;
42
+      height: 100%;
43
+    }
44
+  }
45
+}
46
+</style>

+ 100
- 41
src/pages/pg2-2/index.vue Bestand weergeven

@@ -3,8 +3,7 @@
3 3
     <div class="bk-pd content">
4 4
       <p class="txt">
5 5
         85年前,
6
-        <br />日本侵略者制造了惨绝人寰的南京大屠杀,
7
-        <br />30多万生灵涂炭。
6
+        <br />日本侵略者制造了惨绝人寰的南京大屠杀, <br />30多万生灵涂炭。
8 7
         <br />战后的紫金山废墟下,片片紫色小花密密开放。
9 8
         <br />
10 9
         <br />
@@ -21,47 +20,79 @@
21 20
       <p class="txt bottom">
22 21
         1939年,一名日本带军医着对战争的反思和忏悔,
23 22
         <br />把取自南京的花种带回日本,撒遍山野、植满庭院,
24
-        <br />并取名“紫金草”。
25
-        <br />在他的眼中,当年的紫金山上,
23
+        <br />并取名“紫金草”。 <br />在他的眼中,当年的紫金山上,
26 24
         <br />每一朵花就是一个在战争中丧生的灵魂。
27
-        <br />此后几十年,这名军医和家人
28
-        <br />在各地播种紫金草悼念亡灵,
25
+        <br />此后几十年,这名军医和家人 <br />在各地播种紫金草悼念亡灵,
29 26
       </p>
30 27
     </div>
31
-    <div class="bk-pd content">
32
-      <InkEffect src="./images/pg2-2/紫金草行动logo拷贝.png" :active="inkActive" />
33
-      <img class="photo-img" src="/images/pg2-2/照片4.png" />
34
-    </div>
35
-    <!-- <Splide :options="slideOptions" :has-track="false" @splide:moved="onSlideChange">
28
+    <!-- <div class="bk-pd content-ink"> -->
29
+    <!-- <InkEffect src="./images/pg2-2/紫金草行动logo拷贝.png" :active="inkActive" /> -->
30
+    
31
+    <img  class="slide-ink" src="/images/pg2-2/照片1.png" alt="">
32
+    <Splide
33
+      :options="slideOptions"
34
+      :has-track="false"
35
+      @splide:moved="onSlideChange"
36
+    >
36 37
       <div class="ink-slider-wrapper">
37 38
         <SplideTrack>
38 39
           <SplideSlide>
39
-            <Ink class="slide-ink" :active="slideIndexRef == 0" src="./images/pg2-2/照片1.png" />
40
+        
41
+            <Ink
42
+              class="slide-ink"
43
+              :active="slideIndexRef == 0"
44
+              src="/images/pg2-2/照片1.png"
45
+            />
40 46
           </SplideSlide>
41 47
           <SplideSlide>
42
-            <Ink class="slide-ink" :active="slideIndexRef == 1" src="./images/pg2-2/照片2.png" />
48
+            <Ink
49
+              class="slide-ink"
50
+              :active="slideIndexRef == 1"
51
+              src="/images/pg2-2/照片2.png"
52
+            />
43 53
           </SplideSlide>
44 54
           <SplideSlide>
45
-            <Ink class="slide-ink" :active="slideIndexRef == 2" src="./images/pg2-2/照片3.png" />
55
+            <Ink
56
+              class="slide-ink"
57
+              :active="slideIndexRef == 2"
58
+              src="/images/pg2-2/照片3.png"
59
+            />
46 60
           </SplideSlide>
47 61
           <SplideSlide>
48
-            <Ink class="slide-ink" :active="slideIndexRef == 3" src="./images/pg2-2/照片4.png" />
62
+            <Ink
63
+              class="slide-ink"
64
+              :active="slideIndexRef == 3"
65
+              src="/images/pg2-2/照片4.png"
66
+            />
49 67
           </SplideSlide>
50
-    </SplideTrack>-->
51
-    <!-- </div>
52
-    </Splide>-->
68
+        </SplideTrack>
69
+        <div class="splide__arrows abs" style="left: 0; top: 0">
70
+          <div class="splide__arrow splide__arrow--prev">
71
+            <img
72
+              src="/images/pg3/arrow.png"
73
+              alt=""
74
+              style="transform: rotate(180deg)"
75
+            />
76
+          </div>
77
+        </div>
78
+        <div class="splide__arrows abs" style="right: 0; top: 0">
79
+          <div class="splide__arrow splide__arrow--next">
80
+            <img src="/images/pg3/arrow.png" alt="" />
81
+          </div>
82
+        </div>
83
+      </div>
84
+    </Splide>
85
+    <!-- <img class="photo-img" src="/images/pg2-2/照片4.png" /> -->
86
+    <!-- </div> -->
87
+
53 88
     <div class="bk-pd content">
54 89
       <p class="txt bottom">
55 90
         紫金草,它耐寒、耐旱,
56
-        <br />在贫瘠的土地上也能顽强生长,
57
-        <br />蕴含着无穷的草根力量,
58
-        <br />寄托了对战争的反省和对和平的祈愿。
59
-        <br />“紫金草行动”由此而来。
60
-        <br />小小紫金草,悠悠寄哀思。
61
-        <br />让和平中长大的年轻人保持“痛”感,
91
+        <br />在贫瘠的土地上也能顽强生长, <br />蕴含着无穷的草根力量,
92
+        <br />寄托了对战争的反省和对和平的祈愿。 <br />“紫金草行动”由此而来。
93
+        <br />小小紫金草,悠悠寄哀思。 <br />让和平中长大的年轻人保持“痛”感,
62 94
         <br />让更多的人主动追问、不断提起那段历史,
63
-        <br />让和平之声传向世界各地,
64
-        <br />这一直是“紫金草行动”努力的方向。
95
+        <br />让和平之声传向世界各地, <br />这一直是“紫金草行动”努力的方向。
65 96
       </p>
66 97
     </div>
67 98
     <div class="bk-pd content">
@@ -72,10 +103,8 @@
72 103
         2014年,在国家首个公祭日来临之际,
73 104
         <br />为了深切缅怀惨遭日军屠戮遇难同胞,
74 105
         <br />唤起人们对和平的向往和珍视,
75
-        <br />南京广播电视集团发起了“紫金草行动”。
76
-        <br />九年了,
77
-        <br />“紫金草行动”再启航,
78
-        <br />让“和平之花”开得更远!
106
+        <br />南京广播电视集团发起了“紫金草行动”。 <br />九年了,
107
+        <br />“紫金草行动”再启航, <br />让“和平之花”开得更远!
79 108
       </p>
80 109
     </div>
81 110
     <div class="bk-pd content">
@@ -85,29 +114,34 @@
85 114
 </template>
86 115
 
87 116
 <script steup>
88
-import { ref } from 'vue'
89
-import { Splide, SplideSlide, SplideTrack } from '@splidejs/vue-splide'
90
-import InkEffect from '@/components/InkEffect.vue'
117
+import { onBeforeUnmount, onMounted, ref } from "vue";
118
+import { Splide, SplideSlide, SplideTrack } from '@splidejs/vue-splide';
119
+import Bell from '@/components/Bell.vue';
120
+  import Btn from '@/components/Btn.vue';
121
+  import Animate from '@/components/Animate.vue';
91 122
 
92
-const inkActive = ref(false)
93
-const slideIndexRef = ref(0)
123
+import Ink from "./Ink.vue";
124
+const inkActive = ref(false);
125
+const slideIndexRef = ref(0);
94 126
 
95 127
 const slideOptions = {
96 128
   // arrows: false,
97 129
   pagination: false,
98 130
   autoplay: true,
99
-  type: 'loop',
131
+  type: "loop",
100 132
   speed: 1000,
101
-  interval: 6000
102
-}
133
+  interval: 6000,
134
+};
103 135
 
104 136
 const onSlideChange = (slide, newIndex) => {
105
-  slideIndexRef.value = newIndex
106
-}
137
+  slideIndexRef.value = newIndex;
138
+};
107 139
 </script>
108 140
 
109 141
 <style lang="less" scoped>
110 142
 .pg2-2 {
143
+  position: relative;
144
+  height: 100vh;
111 145
   .content {
112 146
     text-align: center;
113 147
   }
@@ -202,10 +236,35 @@ const onSlideChange = (slide, newIndex) => {
202 236
       display: inline-block;
203 237
     }
204 238
   }
239
+
240
+  .content-ink {
241
+  }
242
+  .ink-slider-wrapper {
243
+    position: relative;
244
+    z-index: 2;
245
+    .slide-ink {
246
+    width: 100vw;
247
+    height: 54.89vw;
248
+  }
249
+    .splide__arrows {
250
+      position: absolute;
251
+      z-index: 10;
252
+      width: 48px;
253
+      height: 54.89vw;
254
+      line-height: 54.89vw;
255
+      text-align: center;
256
+
257
+      img {
258
+        width: 12px;
259
+        display: inline-block;
260
+      }
261
+    }
262
+  }
263
+ 
205 264
 }
206 265
 .txt {
207 266
   text-align: center;
208 267
   font-size: 0.9em;
209 268
   font-weight: 400;
210 269
 }
211
-</style>
270
+</style>