Your Name 2 年前
父节点
当前提交
acc807d947
共有 100 个文件被更改,包括 672 次插入39 次删除
  1. 4
    1
      index.html
  2. 1
    0
      package.json
  3. 二进制
      public/images/BG.jpg
  4. 二进制
      public/images/BG.png
  5. 二进制
      public/images/bk1/map/地图散开0001.png
  6. 二进制
      public/images/bk1/map/地图散开0002.png
  7. 二进制
      public/images/bk1/map/地图散开0003.png
  8. 二进制
      public/images/bk1/map/地图散开0004.png
  9. 二进制
      public/images/bk1/map/地图散开0005.png
  10. 二进制
      public/images/bk1/map/地图散开0006.png
  11. 二进制
      public/images/bk1/map/地图散开0007.png
  12. 二进制
      public/images/bk1/map/地图散开0008.png
  13. 二进制
      public/images/bk1/map/地图散开0009.png
  14. 二进制
      public/images/bk1/map/地图散开0010.png
  15. 二进制
      public/images/bk1/map/地图散开0011.png
  16. 二进制
      public/images/bk1/map/地图散开0012.png
  17. 二进制
      public/images/bk1/map/地图散开0013.png
  18. 二进制
      public/images/bk1/map/地图散开0014.png
  19. 二进制
      public/images/bk1/map/地图散开0015.png
  20. 二进制
      public/images/bk1/map/地图散开0016.png
  21. 二进制
      public/images/bk1/map/地图散开0017.png
  22. 二进制
      public/images/bk1/map/地图散开0018.png
  23. 二进制
      public/images/bk1/map/地图散开0019.png
  24. 二进制
      public/images/bk1/map/地图散开0020.png
  25. 二进制
      public/images/bk1/map/地图散开0021.png
  26. 二进制
      public/images/bk1/map/地图散开0022.png
  27. 二进制
      public/images/bk1/map/地图散开0023.png
  28. 二进制
      public/images/bk1/map/地图散开0024.png
  29. 二进制
      public/images/bk1/map/地图散开0025.png
  30. 二进制
      public/images/bk1/pg2/badge.png
  31. 二进制
      public/images/bk1/pg2/header.png
  32. 二进制
      public/images/pg1/14个国家.png
  33. 二进制
      public/images/pg1/2亿人.png
  34. 二进制
      public/images/pg1/30万文字.png
  35. 二进制
      public/images/pg1/BG.png
  36. 二进制
      public/images/pg1/bell.png
  37. 二进制
      public/images/pg1/earth.png
  38. 二进制
      public/images/pg1/honour.png
  39. 二进制
      public/images/pg1/line1.png
  40. 二进制
      public/images/pg1/line2.png
  41. 二进制
      public/images/pg1/logo.png
  42. 二进制
      public/images/pg1/peace.png
  43. 二进制
      public/images/pg1/stele.png
  44. 二进制
      public/images/pg1/wall.png
  45. 二进制
      public/images/pg1/关闭按钮.png
  46. 二进制
      public/images/pg1/紫金草行动logo.png
  47. 二进制
      public/images/pg1/花丛.png
  48. 二进制
      public/images/pg1/近20万枚.png
  49. 二进制
      public/images/pg1/音乐按钮.png
  50. 二进制
      public/images/pg2/2de9913336480164862438fd1dd3f4a6.jpg
  51. 二进制
      public/images/pg2/BG.jpg
  52. 二进制
      public/images/pg2/cloud-left.png
  53. 二进制
      public/images/pg2/cloud-right.png
  54. 二进制
      public/images/pg2/index.png
  55. 二进制
      public/images/pg2/ruins_colorful.png
  56. 二进制
      public/images/pg2/smoke.png
  57. 二进制
      public/images/pg2/stele.png
  58. 二进制
      public/images/pg2/story.png
  59. 二进制
      public/images/pg2/了解故事.png
  60. 二进制
      public/images/pg2/云1.png
  61. 二进制
      public/images/pg2/云2.png
  62. 二进制
      public/images/pg2/前景土堆.png
  63. 二进制
      public/images/pg2/废墟中的绯红.png
  64. 二进制
      public/images/pg2/远山.png
  65. 二进制
      public/images/pg3/BG.png
  66. 二进制
      public/images/pg3/header.png
  67. 二进制
      public/images/pg3/map.png
  68. 二进制
      public/images/pg3/中间花朵.png
  69. 二进制
      public/images/pg3/和平大钟.png
  70. 二进制
      public/images/pg3/底部照片.png
  71. 二进制
      public/images/pg3/往下箭头.png
  72. 二进制
      public/images/pg3/碑.png
  73. 二进制
      public/images/pg3/紫金草种子.png
  74. 二进制
      public/images/pg3/线轮廓.png
  75. 二进制
      public/images/pg3/组1.png
  76. 二进制
      public/images/pg3/组2.png
  77. 二进制
      public/images/pg3/组3.png
  78. 二进制
      public/images/pg3/组4.png
  79. 二进制
      public/images/pg3/花朵.png
  80. 二进制
      public/images/pg3/采访1.png
  81. 二进制
      public/images/pg3/采访2.png
  82. 5
    0
      public/jquery.1.9.1.js
  83. 1
    0
      public/slidePage/slidePage.min.css
  84. 1
    0
      public/slidePage/slidePage.min.js
  85. 二进制
      public/video/first.mp4
  86. 二进制
      public/video/紫金草走向世界010.mp4
  87. 99
    0
      src/components/Bell.vue
  88. 67
    0
      src/components/Erasure.vue
  89. 71
    0
      src/components/ImageText.vue
  90. 3
    4
      src/main.js
  91. 47
    0
      src/pages/bk1/Dot.vue
  92. 36
    0
      src/pages/bk1/index.vue
  93. 121
    0
      src/pages/bk1/pg1.vue
  94. 49
    0
      src/pages/bk1/pg2.vue
  95. 7
    0
      src/pages/bk1/pg3.vue
  96. 69
    0
      src/pages/first.vue
  97. 41
    34
      src/pages/index.vue
  98. 12
    0
      src/pages/pg1/Logo.vue
  99. 38
    0
      src/pages/pg1/Part1.vue
  100. 0
    0
      src/pages/pg1/Part2.vue

+ 4
- 1
index.html 查看文件

6
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
     <link rel="stylesheet" href="./fonts/iconfont.css">
7
     <link rel="stylesheet" href="./fonts/iconfont.css">
8
     <script src="./wx/jweixin-1.6.0.js"></script>
8
     <script src="./wx/jweixin-1.6.0.js"></script>
9
-    <script src="./qrcode.min.js"></script>
9
+    <script src="./jquery.1.9.1.js"></script>
10
+    <script src="./turn.min.js"></script>
10
     <script src="./config.js"></script>
11
     <script src="./config.js"></script>
12
+    <script src="./slidePage/slidePage.min.js"></script>
13
+    <link rel="stylesheet" href="./slidePage/slidePage.min.css">
11
     <title>南京-紫金草行动</title>
14
     <title>南京-紫金草行动</title>
12
     <!-- <script src="./vconsole.min.js"></script>
15
     <!-- <script src="./vconsole.min.js"></script>
13
     <script>
16
     <script>

+ 1
- 0
package.json 查看文件

10
   },
10
   },
11
   "dependencies": {
11
   "dependencies": {
12
     "@zjxpcyc/vue-tiny-store": "^1.0.1",
12
     "@zjxpcyc/vue-tiny-store": "^1.0.1",
13
+    "animate.css": "^4.1.1",
13
     "html2canvas": "^1.4.1",
14
     "html2canvas": "^1.4.1",
14
     "v-viewer": "^3.0.10",
15
     "v-viewer": "^3.0.10",
15
     "viewerjs": "1.9.0",
16
     "viewerjs": "1.9.0",

二进制
public/images/BG.jpg 查看文件


二进制
public/images/BG.png 查看文件


二进制
public/images/bk1/map/地图散开0001.png 查看文件


二进制
public/images/bk1/map/地图散开0002.png 查看文件


二进制
public/images/bk1/map/地图散开0003.png 查看文件


二进制
public/images/bk1/map/地图散开0004.png 查看文件


二进制
public/images/bk1/map/地图散开0005.png 查看文件


二进制
public/images/bk1/map/地图散开0006.png 查看文件


二进制
public/images/bk1/map/地图散开0007.png 查看文件


二进制
public/images/bk1/map/地图散开0008.png 查看文件


二进制
public/images/bk1/map/地图散开0009.png 查看文件


二进制
public/images/bk1/map/地图散开0010.png 查看文件


二进制
public/images/bk1/map/地图散开0011.png 查看文件


二进制
public/images/bk1/map/地图散开0012.png 查看文件


二进制
public/images/bk1/map/地图散开0013.png 查看文件


二进制
public/images/bk1/map/地图散开0014.png 查看文件


二进制
public/images/bk1/map/地图散开0015.png 查看文件


二进制
public/images/bk1/map/地图散开0016.png 查看文件


二进制
public/images/bk1/map/地图散开0017.png 查看文件


二进制
public/images/bk1/map/地图散开0018.png 查看文件


二进制
public/images/bk1/map/地图散开0019.png 查看文件


二进制
public/images/bk1/map/地图散开0020.png 查看文件


二进制
public/images/bk1/map/地图散开0021.png 查看文件


二进制
public/images/bk1/map/地图散开0022.png 查看文件


二进制
public/images/bk1/map/地图散开0023.png 查看文件


二进制
public/images/bk1/map/地图散开0024.png 查看文件


二进制
public/images/bk1/map/地图散开0025.png 查看文件


二进制
public/images/bk1/pg2/badge.png 查看文件


二进制
public/images/bk1/pg2/header.png 查看文件


二进制
public/images/pg1/14个国家.png 查看文件


二进制
public/images/pg1/2亿人.png 查看文件


二进制
public/images/pg1/30万文字.png 查看文件


二进制
public/images/pg1/BG.png 查看文件


二进制
public/images/pg1/bell.png 查看文件


二进制
public/images/pg1/earth.png 查看文件


二进制
public/images/pg1/honour.png 查看文件


二进制
public/images/pg1/line1.png 查看文件


二进制
public/images/pg1/line2.png 查看文件


二进制
public/images/pg1/logo.png 查看文件


二进制
public/images/pg1/peace.png 查看文件


二进制
public/images/pg1/stele.png 查看文件


二进制
public/images/pg1/wall.png 查看文件


二进制
public/images/pg1/关闭按钮.png 查看文件


二进制
public/images/pg1/紫金草行动logo.png 查看文件


二进制
public/images/pg1/花丛.png 查看文件


二进制
public/images/pg1/近20万枚.png 查看文件


二进制
public/images/pg1/音乐按钮.png 查看文件


二进制
public/images/pg2/2de9913336480164862438fd1dd3f4a6.jpg 查看文件


二进制
public/images/pg2/BG.jpg 查看文件


二进制
public/images/pg2/cloud-left.png 查看文件


二进制
public/images/pg2/cloud-right.png 查看文件


二进制
public/images/pg2/index.png 查看文件


二进制
public/images/pg2/ruins_colorful.png 查看文件


二进制
public/images/pg2/smoke.png 查看文件


二进制
public/images/pg2/stele.png 查看文件


二进制
public/images/pg2/story.png 查看文件


二进制
public/images/pg2/了解故事.png 查看文件


二进制
public/images/pg2/云1.png 查看文件


二进制
public/images/pg2/云2.png 查看文件


二进制
public/images/pg2/前景土堆.png 查看文件


二进制
public/images/pg2/废墟中的绯红.png 查看文件


二进制
public/images/pg2/远山.png 查看文件


二进制
public/images/pg3/BG.png 查看文件


二进制
public/images/pg3/header.png 查看文件


二进制
public/images/pg3/map.png 查看文件


二进制
public/images/pg3/中间花朵.png 查看文件


二进制
public/images/pg3/和平大钟.png 查看文件


二进制
public/images/pg3/底部照片.png 查看文件


二进制
public/images/pg3/往下箭头.png 查看文件


二进制
public/images/pg3/碑.png 查看文件


二进制
public/images/pg3/紫金草种子.png 查看文件


二进制
public/images/pg3/线轮廓.png 查看文件


二进制
public/images/pg3/组1.png 查看文件


二进制
public/images/pg3/组2.png 查看文件


二进制
public/images/pg3/组3.png 查看文件


二进制
public/images/pg3/组4.png 查看文件


二进制
public/images/pg3/花朵.png 查看文件


二进制
public/images/pg3/采访1.png 查看文件


二进制
public/images/pg3/采访2.png 查看文件


+ 5
- 0
public/jquery.1.9.1.js
文件差异内容过多而无法显示
查看文件


+ 1
- 0
public/slidePage/slidePage.min.css 查看文件

1
+.slide-container{width:100%;height:100%;overflow:hidden;position:relative}.slide-container .slide-page{position:absolute;top:0;left:0;width:100%;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:rgba(255,255,255,0);-webkit-text-size-adjust:none;-webkit-backface-visibility:hidden;-webkit-transform-style:preserve-3d;background-position:center}.slide-container .slide-page{transform:translate3d(0,100%,0);-webkit-transform:translate3d(0,100%,0)}.slide-container .slide-page.transition{transition:transform .7s cubic-bezier(.55,.085,0,.99);-webkit-transition:transform .7s cubic-bezier(.55,.085,0,.99)}

+ 1
- 0
public/slidePage/slidePage.min.js
文件差异内容过多而无法显示
查看文件


二进制
public/video/first.mp4 查看文件


二进制
public/video/紫金草走向世界010.mp4 查看文件


+ 99
- 0
src/components/Bell.vue 查看文件

1
+<template>
2
+  <div class="bell-box">
3
+    <div>
4
+      <div class="center circle abs"><div class="inner" /></div>
5
+      <div class="center circle abs"><div class="outer" /></div>
6
+      <div class="center bell-img">
7
+        <img src="/images/pg1/bell.png" alt="">
8
+      </div>
9
+    </div>
10
+  </div>
11
+</template>
12
+
13
+<script setup>
14
+
15
+</script>
16
+
17
+<style lang="less" scoped>
18
+.bell-box {
19
+  @size: 10vw;
20
+
21
+  width: @size;
22
+  height: @size;
23
+
24
+  & > div {
25
+    width: 100%;
26
+    height: 100%;
27
+    position: relative;
28
+  }
29
+
30
+  .center {
31
+    width: 100%;
32
+    height: 100%;
33
+    display: flex;
34
+    justify-content: center;
35
+    align-items: center;
36
+  }
37
+
38
+  .circle {
39
+    top: 2vw;
40
+    left: 0;
41
+    z-index: 0;
42
+
43
+    & > div {
44
+      flex: none;
45
+      width: 50%;
46
+      height: 50%;
47
+      border: 2px solid rgba(223, 183, 132, 1);
48
+      border-radius: 50%;
49
+      opacity: 0;
50
+    }
51
+
52
+    .inner {
53
+      animation: bell-circle-show 3s linear infinite;
54
+    }
55
+
56
+    .outer {      
57
+      animation: bell-circle-show 3s linear 1.5s infinite;
58
+    }
59
+
60
+    @keyframes bell-circle-show {
61
+      0% {
62
+        opacity: 0;
63
+        transform: scale(1);
64
+      }
65
+
66
+      50% {
67
+        opacity: 1;
68
+      }
69
+
70
+      100% {
71
+        opacity: 0;
72
+        transform: scale(2.4);
73
+      }
74
+    }
75
+  }
76
+
77
+  .bell-img {
78
+    position: relative;
79
+    z-index: 2;
80
+
81
+    img {
82
+      flex: none;
83
+      width: 80%;
84
+
85
+      transform-origin: top center;
86
+      animation: bell-shake 1.4s ease-in-out infinite alternate;
87
+    }
88
+  }
89
+
90
+  @keyframes bell-shake {
91
+    from {
92
+      transform: rotate(15deg);
93
+    }
94
+    to {
95
+      transform: rotate(-15deg);
96
+    }
97
+  }
98
+}
99
+</style>

+ 67
- 0
src/components/Erasure.vue 查看文件

1
+<template>
2
+  <div class="erasure">
3
+    <img :src="img" alt="" v-if="img">
4
+    <slot v-else />
5
+    <div class="erasure-mask" :style="style"></div>
6
+  </div>
7
+</template>
8
+
9
+<script setup>
10
+  import { computed, ref } from 'vue';
11
+
12
+  const props = defineProps({
13
+    delay: String,
14
+    img: String,
15
+    timing: String,
16
+  })
17
+
18
+  const style = computed(() => {
19
+    let sty = {}
20
+    if (props.delay) {
21
+      sty = { animationDelay: props.delay }
22
+    }
23
+
24
+    if (props.timing) {
25
+      sty = {
26
+        ...sty,
27
+        animationTimingFunction: props.timing
28
+      }
29
+    }
30
+
31
+    return sty;
32
+  });
33
+
34
+</script>
35
+
36
+<style lang="less" scoped>
37
+.erasure {
38
+  position: relative;
39
+  
40
+  .erasure-mask {
41
+      position: absolute;
42
+      top: 0;
43
+      left: 0;
44
+      width: 100%;
45
+      height: 100%;
46
+      background-image: url('/images/BG.jpg');
47
+      background-size: 100% 100%;
48
+      background-repeat: no-repeat;
49
+      transform-origin: bottom center;
50
+      animation-name: erasure;
51
+      animation-duration: 1s;
52
+      animation-timing-function: linear;
53
+      animation-fill-mode: forwards;
54
+      z-index: 10;
55
+    }
56
+
57
+  @keyframes erasure {
58
+    from {
59
+      transform: scaleY(100%);
60
+    }
61
+
62
+    to {
63
+      transform: scaleY(0);
64
+    }
65
+  }
66
+}
67
+</style>

+ 71
- 0
src/components/ImageText.vue 查看文件

1
+<template>
2
+  <div class="img-txt" :style="style">
3
+    <img
4
+      class="animate__animated animate__rotateIn"
5
+      :class="{step: step}"
6
+      :src="img"
7
+      :data-delay="delay"
8
+      alt=""
9
+    >
10
+    <div class="space"></div>
11
+    <div class="txt"><slot /></div>
12
+  </div>
13
+</template>
14
+
15
+<script setup>
16
+import { computed } from "vue"
17
+
18
+  const props = defineProps({
19
+    step: Boolean,
20
+    delay: Number,
21
+    img: String,
22
+    direct: String,
23
+  })
24
+
25
+  const style = computed(() => {
26
+    if (props.direct === 'right') {
27
+      return {
28
+        flexDirection: 'row-reverse'
29
+      }
30
+    } else {
31
+      return {};
32
+    }
33
+  });
34
+</script>
35
+
36
+<style lang="less">
37
+.img-txt {
38
+  display: flex;
39
+  align-items: center;
40
+  flex-direction: row;
41
+
42
+  img {
43
+    flex: none;
44
+    width: 30vw;
45
+    height: 30vw;
46
+
47
+    // animation: img-scroll 600ms linear;
48
+  }
49
+
50
+  .space {
51
+    flex: none;
52
+    width: 16px;
53
+  }
54
+
55
+  .txt {
56
+    flex: 1;
57
+  }
58
+}
59
+
60
+@keyframes img-scroll {
61
+  from {
62
+    transform: rotate(-90deg);
63
+    opacity: 0;
64
+  }
65
+
66
+  to {
67
+    transform: rotate(0);
68
+    opacity: 1;
69
+  }
70
+}
71
+</style>

+ 3
- 4
src/main.js 查看文件

1
 import { createApp } from 'vue'
1
 import { createApp } from 'vue'
2
-import VueViewer from 'v-viewer'
3
-import 'viewerjs/dist/viewer.css'
4
-import './style.css'
2
+import 'animate.css'
3
+
5
 import App from './App.vue'
4
 import App from './App.vue'
6
 import store from './store'
5
 import store from './store'
7
 import wxsdk from './utils/wx'
6
 import wxsdk from './utils/wx'
8
 import router from './router'
7
 import router from './router'
9
 import i18n from './i18n'
8
 import i18n from './i18n'
10
 
9
 
10
+import './style.less'
11
 // const { share } = wxsdk(location.href)
11
 // const { share } = wxsdk(location.href)
12
 
12
 
13
 const app = createApp(App);
13
 const app = createApp(App);
14
-app.use(VueViewer);
15
 app.use(store);
14
 app.use(store);
16
 app.use(router);
15
 app.use(router);
17
 app.use(i18n);
16
 app.use(i18n);

+ 47
- 0
src/pages/bk1/Dot.vue 查看文件

1
+<template>
2
+  <div class="dot-box">
3
+    <ul>
4
+      <li :class="{active: active===1}">&nbsp;</li>
5
+      <li :class="{active: active===2}">&nbsp;</li>
6
+      <li :class="{active: active===3}">&nbsp;</li>
7
+    </ul>
8
+  </div>
9
+</template>
10
+
11
+<script setup>
12
+  const props = defineProps({
13
+    active: Number,
14
+  })
15
+</script>
16
+
17
+<style lang="less" scoped>
18
+.dot-box {
19
+  ul {
20
+    margin: 0;
21
+    padding: 0;
22
+    position: relative;
23
+    width: 100%;
24
+    display: flex;
25
+    justify-content: center;
26
+
27
+    li {
28
+      flex: none;
29
+      width: .5em;
30
+      height: .5em;
31
+      display: inline-block;
32
+      list-style: none;
33
+      border-radius: 50%;
34
+      border: 2px solid #ae61b3;
35
+      overflow: hidden;
36
+
37
+      &.active {
38
+        background: #ae61b3;
39
+      }
40
+
41
+      & + li {
42
+        margin-left: 1em;
43
+      }
44
+    }
45
+  }
46
+}
47
+</style>

+ 36
- 0
src/pages/bk1/index.vue 查看文件

1
+<template>
2
+  <div id="bk1">
3
+    <Pg1 />
4
+    <Pg2 />
5
+    <Pg3 />
6
+  </div>
7
+</template>
8
+
9
+<script setup>
10
+import { onMounted } from 'vue';
11
+import Pg1 from './pg1.vue';
12
+import Pg2 from './pg2.vue';
13
+import Pg3 from './pg3.vue';
14
+
15
+onMounted(() => {
16
+  $("#bk1").turn({
17
+    width: '100vw',
18
+    height: '100vh',
19
+    display: 'single',
20
+    pages: 3
21
+  });
22
+});
23
+</script>
24
+
25
+<style lang="less">
26
+#bk1 {
27
+  .bk-pg {
28
+    background-color: #000000;
29
+  }
30
+
31
+  .bk-pd {
32
+    box-sizing: border-box;
33
+    padding: 6px;
34
+  }
35
+}
36
+</style>

+ 121
- 0
src/pages/bk1/pg1.vue 查看文件

1
+<template>
2
+  <div class="page pg-bg bk-pg">
3
+    <div class="bk-pd">
4
+      <video src="/video/紫金草走向世界010.mp4" autoplay="autoplay"></video>
5
+    </div>
6
+    <div class="bk-pd content">
7
+      <img class="map-serial" src="/images/bk1/map/地图散开0001.png" alt="">
8
+      <!-- <img v-if="show[1]" class="map-serial" src="/images/bk1/map/地图散开0002.png" alt="">
9
+      <img v-if="show[2]" class="map-serial" src="/images/bk1/map/地图散开0003.png" alt="">
10
+      <img v-if="show[3]" class="map-serial" src="/images/bk1/map/地图散开0004.png" alt="">
11
+      <img v-if="show[4]" class="map-serial" src="/images/bk1/map/地图散开0005.png" alt="">
12
+      <img v-if="show[5]" class="map-serial" src="/images/bk1/map/地图散开0006.png" alt="">
13
+      <img v-if="show[6]" class="map-serial" src="/images/bk1/map/地图散开0007.png" alt="">
14
+      <img v-if="show[7]" class="map-serial" src="/images/bk1/map/地图散开0008.png" alt="">
15
+      <img v-if="show[8]" class="map-serial" src="/images/bk1/map/地图散开0009.png" alt="">
16
+      <img v-if="show[9]" class="map-serial" src="/images/bk1/map/地图散开0010.png" alt="">
17
+      <img v-if="show[10]" class="map-serial" src="/images/bk1/map/地图散开0011.png" alt="">
18
+      <img v-if="show[11]" class="map-serial" src="/images/bk1/map/地图散开0012.png" alt="">
19
+      <img v-if="show[12]" class="map-serial" src="/images/bk1/map/地图散开0013.png" alt="">
20
+      <img v-if="show[13]" class="map-serial" src="/images/bk1/map/地图散开0014.png" alt="">
21
+      <img v-if="show[14]" class="map-serial" src="/images/bk1/map/地图散开0015.png" alt="">
22
+      <img v-if="show[15]" class="map-serial" src="/images/bk1/map/地图散开0016.png" alt="">
23
+      <img v-if="show[16]" class="map-serial" src="/images/bk1/map/地图散开0017.png" alt="">
24
+      <img v-if="show[17]" class="map-serial" src="/images/bk1/map/地图散开0018.png" alt="">
25
+      <img v-if="show[18]" class="map-serial" src="/images/bk1/map/地图散开0019.png" alt="">
26
+      <img v-if="show[19]" class="map-serial" src="/images/bk1/map/地图散开0020.png" alt="">
27
+      <img v-if="show[20]" class="map-serial" src="/images/bk1/map/地图散开0021.png" alt="">
28
+      <img v-if="show[21]" class="map-serial" src="/images/bk1/map/地图散开0022.png" alt="">
29
+      <img v-if="show[22]" class="map-serial" src="/images/bk1/map/地图散开0023.png" alt="">
30
+      <img v-if="show[23]" class="map-serial" src="/images/bk1/map/地图散开0024.png" alt="">
31
+      <img v-if="show[24]" class="map-serial" src="/images/bk1/map/地图散开0025.png" alt=""> -->
32
+    </div>
33
+    <div class="bk-pd content">
34
+      <p class="txt animate__animated animate__fadeInUp" style="margin-top: 0">
35
+        紫金草已成为和平的语言 <br>
36
+        从南京向世界传递出和平的呼唤。<br>
37
+        中国、芬兰、土耳其、德国、英国、瑞士、美国、<br>
38
+        加拿大、日本、韩国、马拉西亚、澳大利亚、<br>
39
+        新西兰、新加坡,紫金草在14个国家被点亮,<br>
40
+        播撒和平的种子。<br>
41
+        近20万枚紫金草徽章佩戴在了人们的心口。
42
+      </p>
43
+    </div>
44
+
45
+    <Dot class="dot abs" :active="1" />
46
+  </div>
47
+</template>
48
+
49
+<script setup>
50
+import { onMounted, ref } from 'vue';
51
+import Dot from './Dot.vue';
52
+
53
+  // const show = ref([true]);
54
+
55
+  let cur = 0;
56
+  let req = null;
57
+  const showMap = (img) => {
58
+    cur += 1;
59
+    const no = cur > 9 ? cur : `0${cur}`;
60
+    img.src = `/images/bk1/map/地图散开00${no}.png`;
61
+
62
+    // req = window.requestAnimationFrame(() => showMap(img));
63
+
64
+    // if (cur >= 24) {
65
+    //   window.cancelAnimationFrame(req);
66
+    // }
67
+  }
68
+
69
+  onMounted(() => {
70
+    // let cur = 0;
71
+    // const t = setInterval(() => {
72
+    //   show.value[cur] = false;
73
+    //   show.value[cur + 1] = true;
74
+    //   cur += 1;
75
+
76
+    //   if (cur >= 24) {
77
+    //     clearInterval(t);
78
+    //   }
79
+    // }, 1000 / 60)
80
+
81
+    const t = setTimeout(() => {
82
+      const img = document.querySelector('.map-serial');
83
+      // showMap(img);
84
+
85
+      const i = setInterval(() => {
86
+        showMap(img);
87
+        if (cur >= 24) {
88
+          clearInterval(i);
89
+        }
90
+      }, 1000 / 25);
91
+    }, 300);
92
+  })
93
+</script>
94
+
95
+<style lang="less" scoped>
96
+.bk-pg {
97
+  video {
98
+    width: 100%;
99
+    height: auto;
100
+  }
101
+
102
+  .content {
103
+    position: relative;
104
+    // padding-top: 16px;
105
+    text-align: center;
106
+    line-height: 1.6em;
107
+  }
108
+
109
+  .map-serial {
110
+    // position: absolute;
111
+    // top: 0;
112
+    // left: 0;
113
+    // width: 100%;
114
+  }
115
+
116
+  .dot {
117
+    width: 100vw;
118
+    bottom: 12px;
119
+  }
120
+}
121
+</style>

+ 49
- 0
src/pages/bk1/pg2.vue 查看文件

1
+<template>
2
+  <div class="page pg-bg bk-pg2">
3
+    <div class="content">
4
+      <img class="header-img" src="/images/bk1/pg2/header.png" alt="">
5
+      <br>
6
+      <img class="badge-img" src="/images/bk1/pg2/badge.png" alt="">
7
+
8
+      <p class="txt animate__animated animate__rubberBand">
9
+        2014年,<br>
10
+        南京广电集团以“紫金草”为原型,<br>
11
+        制作紫金草徽章发放给市民。<br>
12
+        9年来,20万人加入“紫金草行动”,<br>
13
+        把紫金草徽章佩戴在离心脏最近的地方。<br>
14
+        在2亿人心中,和平的愿景被播撒。<br>
15
+      </p>
16
+    </div>
17
+
18
+    <Dot class="abs dot" :active="2" />
19
+  </div>
20
+</template>
21
+
22
+<script setup>
23
+  import Dot from './Dot.vue';
24
+</script>
25
+
26
+<style lang="less" scoped>
27
+.bk-pg2 {
28
+  .content {
29
+    padding: 1em;
30
+    text-align: center;
31
+
32
+    .header-img {
33
+      width: 90%;
34
+      display: inline-block;
35
+    }
36
+
37
+    .badge-img {
38
+      margin: 1em auto;
39
+      width: 36px;
40
+      display: inline-block;
41
+    }
42
+  }
43
+
44
+  .dot {
45
+    width: 100vw;
46
+    bottom: 12px;
47
+  }
48
+}
49
+</style>

+ 7
- 0
src/pages/bk1/pg3.vue 查看文件

1
+<template>
2
+  <div class="page pg-bg">789</div>
3
+</template>
4
+
5
+<script setup>
6
+
7
+</script>

+ 69
- 0
src/pages/first.vue 查看文件

1
+<template>
2
+  <div class="page firstpg">
3
+    <video src="/video/first.mp4" loop="loop" autoplay="autoplay"></video>
4
+    <div class="i18n-change">
5
+      <div class="btn" @click="emit('change', 'zh')">中文版</div>
6
+      <div class="btn" @click="emit('change', 'en')">English</div>
7
+    </div>
8
+  </div>
9
+</template>
10
+
11
+<script setup>
12
+  const emit = defineEmits(['change']);
13
+
14
+</script>
15
+
16
+<style lang="less" scoped>
17
+.firstpg {
18
+  video {
19
+    position: fixed;//视频定位方式设为固定
20
+    right: 0;
21
+    bottom: 0;//视频位置
22
+    min-width: 100%;
23
+    min-height: 100%; //不会因视频尺寸造成页面需要滚动
24
+    width: auto;
25
+    height: auto; //尺寸保持原视频大小
26
+    // z-index: -100; //z轴定位,小于0即可
27
+  }
28
+
29
+  .i18n-change {
30
+    position: absolute;
31
+    bottom: 0;
32
+    left: 0;
33
+    padding-bottom: 20vh;
34
+    box-sizing: border-box;
35
+    z-index: 2;
36
+    width: 100%;
37
+
38
+    .btn {
39
+
40
+      @color: rgba(255, 255, 255, .4);
41
+
42
+      position: relative;
43
+      width: 30vw;
44
+      height: 10vw;
45
+      display: block;
46
+      margin: auto;
47
+      color: #fff;
48
+      background: @color;
49
+      text-align: center;
50
+      line-height: 10vw;
51
+
52
+      &::after {
53
+        content: '';
54
+        width: 100%;
55
+        height: 100%;
56
+        border-bottom: 2px solid @color;
57
+        border-right: 2px solid @color;
58
+        position: absolute;
59
+        bottom: -4px;
60
+        right: -4px;
61
+      }
62
+
63
+      & + .btn {
64
+        margin-top: 10vw;
65
+      }
66
+    }
67
+  }
68
+}
69
+</style>

+ 41
- 34
src/pages/index.vue 查看文件

1
 <template>
1
 <template>
2
-  <div class="container">
3
-    <div class="aud abs"></div>
4
-    <Pg1 />
5
-    <Pg2 />
6
-    <Pg3 />
2
+  <!-- <First @change="onLanChange" /> -->
3
+  <div class="pages slide-container">
4
+    <div class="slide-page">
5
+      <Pg1 class="container"/>
6
+    </div>
7
+    <div class="slide-page">
8
+      <Pg2 class="container"/>
9
+    </div>
10
+    <div class="slide-page">
11
+      <Pg3 class="container"/>
12
+    </div>
13
+
14
+    <!-- <Bk1 /> -->
7
   </div>
15
   </div>
8
 </template>
16
 </template>
9
 
17
 
10
 <script setup>
18
 <script setup>
11
 import { onMounted } from 'vue';
19
 import { onMounted } from 'vue';
12
-import parallaxing from '@/utils/parallaxing.js';
13
-
20
+import { useI18n } from 'vue-i18n';
21
+import First from './first.vue';
14
 import Pg1 from './pg1/index.vue';
22
 import Pg1 from './pg1/index.vue';
15
 import Pg2 from './pg2/index.vue';
23
 import Pg2 from './pg2/index.vue';
16
 import Pg3 from './pg3/index.vue';
24
 import Pg3 from './pg3/index.vue';
25
+import Bk1 from './bk1/index.vue';
26
+// import parallaxing from '@/utils/parallaxing.js';
27
+
28
+
29
+const { locale } = useI18n();
30
+
31
+const onLanChange = (val) => {
32
+  locale.value = val;
33
+  console.log(val)
34
+}
17
 
35
 
18
 onMounted(() => {
36
 onMounted(() => {
19
-  parallaxing()
37
+  // parallaxing()
38
+  var slidepage = new window.slidePage({
39
+    slideContainer: '.slide-container',
40
+    slidePages: '.slide-page',
41
+    page: 1,
42
+    refresh: true,
43
+    dragMode: false,
44
+    useWheel: true,
45
+    useSwipe: true,
46
+    useAnimation : true,
47
+
48
+    // Events
49
+    before: function(origin,direction,target){},
50
+    after: function(origin,direction,target){},
51
+ });
20
 })
52
 })
21
 
53
 
22
 </script>
54
 </script>
23
 
55
 
24
 <style lang="less">
56
 <style lang="less">
25
-.container {
26
-  width: 100vw;
27
-  height: 100vh;
28
-  position: relative;
29
-  overflow-y: auto;
30
-  
31
-  .aud {
32
-    top: 20px;
33
-    right: 20px;
34
-    width: 36px;
35
-    height: 36px;
36
-    background-image: url('/images/pg1/音乐按钮.png');
37
-    background-size:100% 100%;
38
-    z-index: 100;
39
-  }
40
-
41
-  .abs {
42
-    position: absolute;
43
-  }
44
-
45
-  .pg {
46
-    position: relative;
47
-    width: 100%;
48
-    height: 100%;
49
-    overflow: hidden;
50
-  }
57
+.pages {
51
 }
58
 }
52
 </style>
59
 </style>

+ 12
- 0
src/pages/pg1/Logo.vue 查看文件

1
+<template>
2
+<img src="/images/pg1/logo.png" />
3
+</template>
4
+
5
+<script setup>
6
+</script>
7
+
8
+<style lang="less" scoped>
9
+img {
10
+  width: 35vw;
11
+}
12
+</style>

+ 38
- 0
src/pages/pg1/Part1.vue 查看文件

1
+<template>
2
+  <div class="part1-box">
3
+    <div class="content">
4
+      <div class="header">
5
+        <ImageText img="/images/pg1/earth.png" step :delay="500">
6
+          <p class="step animate__animated animate__fadeInRight" data-delay="100">
7
+            2014年至今 <br>
8
+            一朵紫色的小花 <br>
9
+            在全球<strong>14个国家</strong>被点亮
10
+          </p>
11
+        </ImageText>
12
+      </div>
13
+    </div>
14
+    <div class="abs" style="top: 0;width: 70%; z-index: 0;">
15
+      <Erasure delay="1s" timing="cubic-bezier(0.07, 0.85, 0.18, 0.96)">
16
+        <img src="/images/pg1/line1.png" alt="">
17
+      </Erasure>
18
+    </div>
19
+  </div> 
20
+</template>
21
+
22
+<script setup>
23
+  import ImageText from '@/components/ImageText.vue';
24
+  import Erasure from '@/components/Erasure.vue';
25
+</script>
26
+
27
+<style lang="less" scoped>
28
+.part1-box {
29
+  position: relative;
30
+
31
+  .content {
32
+    box-sizing: border-box;
33
+    padding-left: 16px;
34
+    position: relative;
35
+    z-index: 2;
36
+  }
37
+}
38
+</style>

+ 0
- 0
src/pages/pg1/Part2.vue 查看文件


部分文件因为文件数量过多而无法显示