Ver código fonte

改需求改改改

任一存 2 anos atrás
pai
commit
d10a470b1a

+ 11 - 0
.favorites.json

@@ -0,0 +1,11 @@
+[
+    {
+        "type": "Directory",
+        "name": "d:\\projects\\唐家湾记忆非遗一张图\\gaoxinqu\\src\\assets\\images",
+        "parent_id": null,
+        "fsPath": "d:\\projects\\唐家湾记忆非遗一张图\\gaoxinqu\\src\\assets\\images",
+        "workspaceRoot": null,
+        "workspacePath": null,
+        "id": "PrOazdeKNF64Gxgb"
+    }
+]

+ 2 - 1
index.html

@@ -4,7 +4,8 @@
     <meta charset="UTF-8" />
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
-    <title>唐家湾记忆非遗一张图</title>
+    <title>“唐家湾记忆”非遗长卷</title>
+    <link rel="icon" href="./favicon.ico">
   </head>
   <body>
     <div id="app"></div>

BIN
public/favicon.ico


BIN
src/assets/audio/唐家三庙神诞.mp3


BIN
src/assets/audio/端午巡游.mp3


BIN
src/assets/audio/苏裱.mp3


BIN
src/assets/audio/茶果.mp3


BIN
src/assets/audio/药线灸疗.mp3


BIN
src/assets/audio/虾酱.mp3


BIN
src/assets/audio/麦记饼.mp3


BIN
src/assets/images/hotspot/img_baiyue.jpg


BIN
src/assets/images/hotspot/img_dousha.jpg


BIN
src/assets/images/hotspot/img_jishan.jpg


BIN
src/assets/images/hotspot/img_wuren.jpg


BIN
src/assets/images/hotspot/img_xiege.jpg


BIN
src/assets/images/hotspot_big/img_baiyue.jpg


BIN
src/assets/images/hotspot_big/img_dousha.jpg


BIN
src/assets/images/hotspot_big/img_jishan.jpg


BIN
src/assets/images/hotspot_big/img_wuren.jpg


BIN
src/assets/images/hotspot_big/img_xiege.jpg


+ 1 - 1
src/components/Interaction.vue

@@ -60,7 +60,7 @@ watch(current, () => {
   bottom: 0;
   left: 3rem;
   display: flex;
-
+  pointer-events: none;
   .dialog {
     max-width: 30rem;
     background-color: rgba(255, 244, 220, 0.6);

+ 46 - 5
src/components/times/timecommon.vue

@@ -22,7 +22,7 @@
         </ul>
 
         <div class="hotspots">
-          <swiper :slides-per-view="3" :space-between="10" @swiper="onSwiper" @slideChange="onSlideChange">
+          <swiper :slides-per-view="5" :space-between="10" @swiper="onSwiper" @slideChange="onSlideChange">
             <swiper-slide @click="onClickItem(item)" v-for="item in info.hotspots" :key="item">
               <div class="himg">
                 <img :src="getImgUrl(`hotspot/${item.img}`)" alt="">
@@ -31,7 +31,7 @@
             </swiper-slide>
           </swiper>
 
-          <template v-if="info.hotspots && info.hotspots.length > 3">
+          <template v-if="info.hotspots && info.hotspots.length > 5">
             <img class="navigation left" @click="mySwiper.slidePrev()" :src="getImgUrl('icon_left.png')" alt="">
             <img class="navigation right" @click="mySwiper.slideNext()" :src="getImgUrl('icon_right.png')" alt="">
           </template>
@@ -39,6 +39,21 @@
         </div>
       </div>
     </div>
+    <div
+      class="hotspot-icon-wrapper animation-show-hide"
+      v-for="item in info.hotspots"
+      @click="onClickItem(item)"
+      :key="item.id"
+      :style="{
+        left: item.x + ($isRotate ? 'vw' : 'vh'),
+        top: item.y + ($isRotate ? 'vw' : 'vh'),
+      }"
+    >
+      <div
+        class="hotspot-icon"
+        v-if="item.x && item.y"
+      />
+    </div>
   </div>
 </template>
 
@@ -105,7 +120,7 @@ const onClickItem = item => {
   height: 100%;
   display: flex;
   justify-content: flex-start;
-
+  position: relative;
   .right-info {
     display: flex;
     align-items: flex-start;
@@ -124,7 +139,7 @@ const onClickItem = item => {
         text-align: justify;
 
         >li {
-          font-size: 0.88rem;
+          font-size: 1rem;
           line-height: 1.5;
           text-indent: 2rem;
           display: inline-block;
@@ -133,7 +148,7 @@ const onClickItem = item => {
       }
 
       .hotspots {
-        width: 12rem;
+        width: 20rem;
         float: right;
         position: relative;
         margin-top: 0.8rem;
@@ -205,5 +220,31 @@ const onClickItem = item => {
       height: 80%;
     }
   }
+  .hotspot-icon-wrapper {
+    position: absolute;
+    .hotspot-icon {
+      --thiscolor: #783435;
+      width: 0.8rem;
+      height: 0.8rem;
+      border-radius: 50%;
+      display: inline-block;
+      background: var(--thiscolor);
+      position: relative;
+      cursor: pointer;
+      &::after {
+        position: absolute;
+        width: 200%;
+        height: 200%;
+        content: '';
+        border-radius: 50%;
+        display: inline-block;
+        border: 1px solid var(--thiscolor);
+        position: absolute;
+        top: 50%;
+        left: 50%;
+        transform: translate(-50%, -50%);
+      }
+    }
+  }
 }
 </style>

Diferenças do arquivo suprimidas por serem muito extensas
+ 83 - 26
src/data/index.js


+ 1 - 1
src/views/LongImage.vue

@@ -190,7 +190,7 @@ const currentTimeIdx = ref(0);
 const instance = getCurrentInstance()
 const globalProperties = instance.appContext.app.config.globalProperties
 
-const itemW = computed(() => globalProperties.$isMobile || window.innerWidth < 1400 ? 156 : 130)
+const itemW = computed(() => globalProperties.$isMobile || window.innerWidth < 1400 ? 158 : 138)
 
 const isShowDir = ref(false)
 const isShowGuide = ref(false)