fangmingyue 2 years ago
parent
commit
aa74970f60

+ 2
- 1225
package-lock.json
File diff suppressed because it is too large
View File


BIN
public/images/pg2-2/图层38.png View File


BIN
public/images/pg2-2/山.png View File


BIN
public/images/pg2-2/照片1.png View File


BIN
public/images/pg2-2/照片2.png View File


BIN
public/images/pg2-2/照片3.png View File


+ 1
- 1
src/main.js View File

14
 app.use(store);
14
 app.use(store);
15
 app.use(router);
15
 app.use(router);
16
 app.use(i18n);
16
 app.use(i18n);
17
-app.use( VueSplide );
17
+app.use(VueSplide);
18
 app.mount('#app');
18
 app.mount('#app');

+ 105
- 0
src/pages/pg2-2/index.vue View File

7
         <br />30多万生灵涂炭。
7
         <br />30多万生灵涂炭。
8
         <br />战后的紫金山废墟下,片片紫色小花密密开放。
8
         <br />战后的紫金山废墟下,片片紫色小花密密开放。
9
         <br />
9
         <br />
10
+        <br />
10
       </p>
11
       </p>
11
     </div>
12
     </div>
12
     <div class="bk-pd content">
13
     <div class="bk-pd content">
14
+      <img class="layer-img" src="/images/pg2-2/图层38.png" />
15
+    </div>
16
+    <div class="bk-pd content">
17
+      <img class="mountain-img" src="/images/pg2-2/山.png" />
13
       <img class="group-img" src="/images/pg2-2/组4.png" />
18
       <img class="group-img" src="/images/pg2-2/组4.png" />
14
     </div>
19
     </div>
15
     <div class="bk-pd content">
20
     <div class="bk-pd content">
24
       </p>
29
       </p>
25
     </div>
30
     </div>
26
     <div class="bk-pd content">
31
     <div class="bk-pd content">
32
+      <InkEffect src="./images/pg2-2/紫金草行动logo拷贝.png" :active="inkActive" />
27
       <img class="photo-img" src="/images/pg2-2/照片4.png" />
33
       <img class="photo-img" src="/images/pg2-2/照片4.png" />
28
     </div>
34
     </div>
35
+    <!-- <Splide :options="slideOptions" :has-track="false" @splide:moved="onSlideChange">
36
+      <div class="ink-slider-wrapper">
37
+        <SplideTrack>
38
+          <SplideSlide>
39
+            <Ink class="slide-ink" :active="slideIndexRef == 0" src="./images/pg2-2/照片1.png" />
40
+          </SplideSlide>
41
+          <SplideSlide>
42
+            <Ink class="slide-ink" :active="slideIndexRef == 1" src="./images/pg2-2/照片2.png" />
43
+          </SplideSlide>
44
+          <SplideSlide>
45
+            <Ink class="slide-ink" :active="slideIndexRef == 2" src="./images/pg2-2/照片3.png" />
46
+          </SplideSlide>
47
+          <SplideSlide>
48
+            <Ink class="slide-ink" :active="slideIndexRef == 3" src="./images/pg2-2/照片4.png" />
49
+          </SplideSlide>
50
+    </SplideTrack>-->
51
+    <!-- </div>
52
+    </Splide>-->
29
     <div class="bk-pd content">
53
     <div class="bk-pd content">
30
       <p class="txt bottom">
54
       <p class="txt bottom">
31
         紫金草,它耐寒、耐旱,
55
         紫金草,它耐寒、耐旱,
60
   </div>
84
   </div>
61
 </template>
85
 </template>
62
 
86
 
87
+<script steup>
88
+import { ref } from 'vue'
89
+import { Splide, SplideSlide, SplideTrack } from '@splidejs/vue-splide'
90
+import InkEffect from '@/components/InkEffect.vue'
91
+
92
+const inkActive = ref(false)
93
+const slideIndexRef = ref(0)
94
+
95
+const slideOptions = {
96
+  // arrows: false,
97
+  pagination: false,
98
+  autoplay: true,
99
+  type: 'loop',
100
+  speed: 1000,
101
+  interval: 6000
102
+}
103
+
104
+const onSlideChange = (slide, newIndex) => {
105
+  slideIndexRef.value = newIndex
106
+}
107
+</script>
108
+
63
 <style lang="less" scoped>
109
 <style lang="less" scoped>
64
 .pg2-2 {
110
 .pg2-2 {
65
   .content {
111
   .content {
66
     text-align: center;
112
     text-align: center;
67
   }
113
   }
68
   .content {
114
   .content {
115
+    .layer-img {
116
+      z-index: 0;
117
+      width: 14%;
118
+      display: inline-block;
119
+      position: absolute;
120
+      top: 220px;
121
+      left: 35px;
122
+      animation: layer-img 1.2s linear alternate;
123
+    }
124
+    @keyframes layer-img {
125
+      from {
126
+        opacity: 0;
127
+        transform: translateY(-40px);
128
+      }
129
+      to {
130
+        opacity: 1;
131
+        transform: translateY(0);
132
+      }
133
+    }
134
+  }
135
+  .content {
136
+    .mountain-img {
137
+      z-index: 0;
138
+      position: absolute;
139
+      top: 115px;
140
+      margin-top: 20px;
141
+      margin-left: 20px;
142
+      width: 95%;
143
+      animation: mountain-img 3s 1;
144
+    }
145
+    @keyframes mountain-img {
146
+      0% {
147
+        opacity: 0;
148
+      }
149
+      100% {
150
+        opacity: 1;
151
+      }
152
+    }
153
+
69
     .group-img {
154
     .group-img {
155
+      z-index: 10;
156
+      width: 84%;
157
+      position: relative;
158
+      margin-top: 70px;
159
+      margin-left: -16%;
70
       display: inline-block;
160
       display: inline-block;
161
+      animation-delay: 3s;
162
+      animation: group-img 1.8s linear;
163
+    }
164
+    @keyframes group-img {
165
+      0% {
166
+        transform: translateX(-100%);
167
+      }
168
+      50% {
169
+        transform: translateX(-50%);
170
+      }
171
+      100% {
172
+        transform: translateX(0);
173
+      }
71
     }
174
     }
72
   }
175
   }
73
   .content {
176
   .content {
102
 }
205
 }
103
 .txt {
206
 .txt {
104
   text-align: center;
207
   text-align: center;
208
+  font-size: 0.9em;
209
+  font-weight: 400;
105
 }
210
 }
106
 </style>
211
 </style>