瀏覽代碼

Merge remote-tracking branch 'origin/master' into flexible

chenlei 1 年之前
父節點
當前提交
e1d1011a26
共有 86 個文件被更改,包括 1224 次插入1090 次删除
  1. 二進制
      public/relic-data/big-photo/第100页-452.png
  2. 二進制
      public/relic-data/big-photo/第100页-453.png
  3. 二進制
      public/relic-data/big-photo/第100页-454.png
  4. 二進制
      public/relic-data/big-photo/第100页-455.png
  5. 二進制
      public/relic-data/big-photo/第101页-457.png
  6. 二進制
      public/relic-data/big-photo/第107页-477.png
  7. 二進制
      public/relic-data/big-photo/第107页-480.png
  8. 二進制
      public/relic-data/big-photo/第111页-527.png
  9. 二進制
      public/relic-data/big-photo/第111页-529.png
  10. 二進制
      public/relic-data/big-photo/第111页-531.png
  11. 二進制
      public/relic-data/big-photo/第112页-536.png
  12. 二進制
      public/relic-data/big-photo/第114页-550.png
  13. 二進制
      public/relic-data/big-photo/第115页-557.png
  14. 二進制
      public/relic-data/big-photo/第121页-574.PNG
  15. 二進制
      public/relic-data/big-photo/第124页-586.png
  16. 二進制
      public/relic-data/big-photo/第125页-592.png
  17. 二進制
      public/relic-data/big-photo/第125页-594.png
  18. 二進制
      public/relic-data/big-photo/第133页-625.png
  19. 二進制
      public/relic-data/big-photo/第138页-645.png
  20. 二進制
      public/relic-data/big-photo/第139页-647.png
  21. 二進制
      public/relic-data/big-photo/第139页-649.png
  22. 二進制
      public/relic-data/big-photo/第140页-658.png
  23. 二進制
      public/relic-data/big-photo/第46页-152.png
  24. 二進制
      public/relic-data/big-photo/第46页-153.png
  25. 二進制
      public/relic-data/big-photo/第47页-165.png
  26. 二進制
      public/relic-data/big-photo/第55页-210.png
  27. 二進制
      public/relic-data/big-photo/第56页-213.png
  28. 二進制
      public/relic-data/big-photo/第58页-224.png
  29. 二進制
      public/relic-data/big-photo/第65页-238.png
  30. 二進制
      public/relic-data/big-photo/第65页-240.png
  31. 二進制
      public/relic-data/big-photo/第65页-241.png
  32. 二進制
      public/relic-data/big-photo/第65页-242.png
  33. 二進制
      public/relic-data/big-photo/第65页-243.png
  34. 二進制
      public/relic-data/big-photo/第65页-244.png
  35. 二進制
      public/relic-data/big-photo/第66页-247.png
  36. 二進制
      public/relic-data/big-photo/第66页-249.png
  37. 二進制
      public/relic-data/big-photo/第77页-336.png
  38. 二進制
      public/relic-data/big-photo/第78页-348.png
  39. 二進制
      public/relic-data/big-photo/第79页-358.png
  40. 二進制
      public/relic-data/big-photo/第79页-359.png
  41. 二進制
      public/relic-data/big-photo/第94页-438.png
  42. 二進制
      public/relic-data/big-photo/第99页-448.png
  43. 二進制
      public/relic-data/big-photo/第99页-449.png
  44. 二進制
      public/relic-data/big-photo/第99页-450.png
  45. 二進制
      public/relic-data/big-photo/第99页-451.png
  46. 1006 1004
      public/relic-data/data.json
  47. 二進制
      public/relic-data/small-photo/第111页-530.png
  48. 二進制
      public/relic-data/small-photo/第113页-542.png
  49. 二進制
      public/relic-data/small-photo/第123页-581.png
  50. 二進制
      public/relic-data/small-photo/第125页-594.png
  51. 二進制
      public/relic-data/small-photo/第129页-614.png
  52. 二進制
      public/relic-data/small-photo/第133页-625.png
  53. 二進制
      public/relic-data/small-photo/第135页-630.png
  54. 二進制
      public/relic-data/small-photo/第136页-637.png
  55. 二進制
      public/relic-data/small-photo/第139页-647.png
  56. 二進制
      public/relic-data/small-photo/第139页-652.png
  57. 二進制
      public/relic-data/small-photo/第140页-658.png
  58. 二進制
      public/relic-data/small-photo/第47页-165.png
  59. 二進制
      public/relic-data/small-photo/第58页-222.png
  60. 二進制
      public/relic-data/small-photo/第58页-223.png
  61. 二進制
      public/relic-data/small-photo/第59页-227.png
  62. 二進制
      public/relic-data/small-photo/第64页-235.png
  63. 二進制
      public/relic-data/small-photo/第76页-330.png
  64. 二進制
      public/relic-data/small-photo/第78页-350.png
  65. 二進制
      public/relic-data/small-photo/第98页-444.bak.png
  66. 二進制
      public/relic-data/small-photo/第98页-444.png
  67. 二進制
      public/relic-data/small-photo/第98页-447.png
  68. 二進制
      src/assets/images/box_2-min.png
  69. 二進制
      src/assets/images/btn-game-entry-page-1.png
  70. 二進制
      src/assets/images/btn-game-entry-page-2.png
  71. 二進制
      src/assets/images/btn-game-entry-page-3.png
  72. 二進制
      src/assets/images/btn-game-entry-page-active-1.png
  73. 二進制
      src/assets/images/btn-game-entry-page-active-2.png
  74. 二進制
      src/assets/images/btn-game-entry-page-active-3.png
  75. 二進制
      src/assets/images/mobile/btn_menu_close-min.png
  76. 二進制
      src/assets/images/mobile/btn_menu_open-min.png
  77. 二進制
      src/assets/images/mobile/tips_mobile-min.png
  78. 8 0
      src/components/CameraContent-1-1-2.vue
  79. 37 5
      src/components/CameraContent-1-2-2.vue
  80. 24 11
      src/components/CameraContent-1-3-1.vue
  81. 14 4
      src/components/CameraContent-2-2-1.vue
  82. 16 2
      src/components/CameraContent-3-2-2.vue
  83. 48 36
      src/components/CameraContent-3-2-3.vue
  84. 1 0
      src/components/HotspotDialog-1.vue
  85. 10 2
      src/components/UserGuide.vue
  86. 60 26
      src/views/PanoView.vue

二進制
public/relic-data/big-photo/第100页-452.png


二進制
public/relic-data/big-photo/第100页-453.png


二進制
public/relic-data/big-photo/第100页-454.png


二進制
public/relic-data/big-photo/第100页-455.png


二進制
public/relic-data/big-photo/第101页-457.png


二進制
public/relic-data/big-photo/第107页-477.png


二進制
public/relic-data/big-photo/第107页-480.png


二進制
public/relic-data/big-photo/第111页-527.png


二進制
public/relic-data/big-photo/第111页-529.png


二進制
public/relic-data/big-photo/第111页-531.png


二進制
public/relic-data/big-photo/第112页-536.png


二進制
public/relic-data/big-photo/第114页-550.png


二進制
public/relic-data/big-photo/第115页-557.png


二進制
public/relic-data/big-photo/第121页-574.PNG


二進制
public/relic-data/big-photo/第124页-586.png


二進制
public/relic-data/big-photo/第125页-592.png


二進制
public/relic-data/big-photo/第125页-594.png


二進制
public/relic-data/big-photo/第133页-625.png


二進制
public/relic-data/big-photo/第138页-645.png


二進制
public/relic-data/big-photo/第139页-647.png


二進制
public/relic-data/big-photo/第139页-649.png


二進制
public/relic-data/big-photo/第140页-658.png


二進制
public/relic-data/big-photo/第46页-152.png


二進制
public/relic-data/big-photo/第46页-153.png


二進制
public/relic-data/big-photo/第47页-165.png


二進制
public/relic-data/big-photo/第55页-210.png


二進制
public/relic-data/big-photo/第56页-213.png


二進制
public/relic-data/big-photo/第58页-224.png


二進制
public/relic-data/big-photo/第65页-238.png


二進制
public/relic-data/big-photo/第65页-240.png


二進制
public/relic-data/big-photo/第65页-241.png


二進制
public/relic-data/big-photo/第65页-242.png


二進制
public/relic-data/big-photo/第65页-243.png


二進制
public/relic-data/big-photo/第65页-244.png


二進制
public/relic-data/big-photo/第66页-247.png


二進制
public/relic-data/big-photo/第66页-249.png


二進制
public/relic-data/big-photo/第77页-336.png


二進制
public/relic-data/big-photo/第78页-348.png


二進制
public/relic-data/big-photo/第79页-358.png


二進制
public/relic-data/big-photo/第79页-359.png


二進制
public/relic-data/big-photo/第94页-438.png


二進制
public/relic-data/big-photo/第99页-448.png


二進制
public/relic-data/big-photo/第99页-449.png


二進制
public/relic-data/big-photo/第99页-450.png


二進制
public/relic-data/big-photo/第99页-451.png


File diff suppressed because it is too large
+ 1006 - 1004
public/relic-data/data.json


二進制
public/relic-data/small-photo/第111页-530.png


二進制
public/relic-data/small-photo/第113页-542.png


二進制
public/relic-data/small-photo/第123页-581.png


二進制
public/relic-data/small-photo/第125页-594.png


二進制
public/relic-data/small-photo/第129页-614.png


二進制
public/relic-data/small-photo/第133页-625.png


二進制
public/relic-data/small-photo/第135页-630.png


二進制
public/relic-data/small-photo/第136页-637.png


二進制
public/relic-data/small-photo/第139页-647.png


二進制
public/relic-data/small-photo/第139页-652.png


二進制
public/relic-data/small-photo/第140页-658.png


二進制
public/relic-data/small-photo/第47页-165.png


二進制
public/relic-data/small-photo/第58页-222.png


二進制
public/relic-data/small-photo/第58页-223.png


二進制
public/relic-data/small-photo/第59页-227.png


二進制
public/relic-data/small-photo/第64页-235.png


二進制
public/relic-data/small-photo/第76页-330.png


二進制
public/relic-data/small-photo/第78页-350.png


二進制
public/relic-data/small-photo/第98页-444.bak.png


二進制
public/relic-data/small-photo/第98页-444.png


二進制
public/relic-data/small-photo/第98页-447.png


二進制
src/assets/images/box_2-min.png


二進制
src/assets/images/btn-game-entry-page-1.png


二進制
src/assets/images/btn-game-entry-page-2.png


二進制
src/assets/images/btn-game-entry-page-3.png


二進制
src/assets/images/btn-game-entry-page-active-1.png


二進制
src/assets/images/btn-game-entry-page-active-2.png


二進制
src/assets/images/btn-game-entry-page-active-3.png


二進制
src/assets/images/mobile/btn_menu_close-min.png


二進制
src/assets/images/mobile/btn_menu_open-min.png


二進制
src/assets/images/mobile/tips_mobile-min.png


+ 8 - 0
src/components/CameraContent-1-1-2.vue

@@ -72,6 +72,9 @@
           alt=""
           draggable="false"
         >
+        <div class="img-title">
+          建设中的元大都
+        </div>
       </div>
     </div>
   </div>
@@ -275,6 +278,11 @@ const tab1ContentPageNumber = ref(1)
         background-color: rgba(145,129,117,0.25);
         object-fit: cover;
       }
+      >.img-title{
+        margin-top: -2.5em;
+        font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+        font-family: "Source Han Sans SC light";
+      }
     }
   }
 }

File diff suppressed because it is too large
+ 37 - 5
src/components/CameraContent-1-2-2.vue


File diff suppressed because it is too large
+ 24 - 11
src/components/CameraContent-1-3-1.vue


+ 14 - 4
src/components/CameraContent-2-2-1.vue

@@ -27,6 +27,9 @@
           alt=""
           draggable="false"
         >
+        <div class="img-title">
+          修复后的菏泽沉船
+        </div>
       </div>
     </div>
   </div>
@@ -121,16 +124,23 @@ const emit = defineEmits(['close'])
       position: relative;
       width: calc(818 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
       height: calc(438 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+      align-items: center;
       >img{
-        position: absolute;
-        left: 0;
-        top: 0;
+        flex: 0 0 auto;
         width: 100%;
-        height: 100%;
         // background: rgba(145,129,117,0.25);
         // border: 1px solid #FFE88B;
         // padding: calc(25 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
       }
+      >.img-title{
+        flex: 0 0 auto;
+        font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+        margin-top: 0.5em;
+        font-family: "Source Han Sans SC light";
+      }
     }
   }
 }

+ 16 - 2
src/components/CameraContent-3-2-2.vue

@@ -26,6 +26,9 @@
             :src="require(`@/assets/images/CameraContent-3-2-2-img-${currentSwitchIdx + 1}.jpg`)"
             alt=""
           >
+          <div class="img-title">
+            关汉卿画像
+          </div>
         </div>
       </div>
     </div>
@@ -198,8 +201,19 @@ const next = () => {
         }
       }
       >.design-wrap-right {
-        img {
-          width: calc(367 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+        position: relative;
+        height: 100%;
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+        >.detail-img{
+          height: 70%;
+        }
+        >.img-title{
+          margin-top: 0.5em;
+          font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+          font-family: "Source Han Sans SC light";
         }
       }
     }

+ 48 - 36
src/components/CameraContent-3-2-3.vue

@@ -6,13 +6,16 @@
       @click="emit('close')"
     />
     <h1>{{ title }}</h1>
-    <div class="content-wrap">
-      <div class="design-wrap">
-        <img
-          class="content-wrap__left"
-          src="@/assets/images/CameraContent-3-2-3-left-bg.png"
-        >
-
+    <div class="wrap-1">
+      <div class="wrap-2">
+        <div class="content-wrap__left">
+          <img
+            src="@/assets/images/CameraContent-3-2-3-left-bg.png"
+          >
+          <div class="img-title">
+            元墓戏曲壁画
+          </div>
+        </div>
         <div class="content-wrap__right text-indent">
           <div>
             <p>
@@ -85,45 +88,54 @@ const title = '表演元曲的著名演员'
     z-index: 1;
   }
 
-  .content-wrap {
+  .wrap-1 {
     position: absolute;
     left: 50%;
     top: 54%;
     width: 100%;
     height: calc(723 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
     transform: translate(-50%, -50%);
-
-    &__right {
+    >.wrap-2 {
+      position: absolute;
+      left: 0;
+      top: 0;
       display: flex;
       align-items: center;
-      justify-content: center;
-      width: 956px;
-      height: 475px;
-      background: url('@/assets/images/CameraContent-3-2-3-right-bg.png') no-repeat center / contain;
-
-      > div {
-        width: 716px;
-        font-size: 20px;
+      justify-content: space-between;
+      padding: 0 97px 0 195px;
+      width: 100%;
+      height: 100%;
+      box-sizing: border-box;
+      background: url(@/assets/images/camera-content-3-1-3-design-bg.png) no-repeat center / cover;
+      >.content-wrap__left{
+        display: flex;
+        flex-direction: column;
+        justify-content: center;
+        align-items: center;
+        height: 100%;
+        >img{
+          flex: 0 0 auto;
+          height: 75%;
+        }
+        >.img-title{
+          margin-top: 0.5em;
+          font-size: calc(20 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+          font-family: "Source Han Sans SC light";
+        }
       }
-    }
-  }
+      >.content-wrap__right {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        width: 956px;
+        height: 475px;
+        background: url('@/assets/images/CameraContent-3-2-3-right-bg.png') no-repeat center / contain;
 
-  .design-wrap {
-    position: absolute;
-    left: 0;
-    top: 0;
-    display: flex;
-    align-items: center;
-    justify-content: center;
-    padding: 0 97px 0 195px;
-    width: 100%;
-    height: 100%;
-    box-sizing: border-box;
-    background: url(@/assets/images/camera-content-3-1-3-design-bg.png) no-repeat center / cover;
-
-    img {
-      margin-right: calc(200 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
-      width: calc(520 / v-bind('windowSizeWhenDesignForRef') * v-bind('windowSizeInCssForRef'));
+        > div {
+          width: 716px;
+          font-size: 20px;
+        }
+      }
     }
   }
 }

+ 1 - 0
src/components/HotspotDialog-1.vue

@@ -1275,6 +1275,7 @@ const close = () => {
     left: 41px;
     width: 72px;
     cursor: pointer;
+    z-index: 100;
   }
   &__info {
     position: absolute;

+ 10 - 2
src/components/UserGuide.vue

@@ -15,7 +15,7 @@
         {{ curStep === 6 ? '我知道了' : '下一步' }}
       </div>
       <template v-if="curStep === 0">
-        <div class="user-guide-1" />
+        <div :class="['user-guide-1', $isMobile && 'is-mobile']" />
       </template>
       <template v-else>
         <template v-if="curStep > 1">
@@ -108,11 +108,12 @@
 </template>
 
 <script setup>
-import { onMounted, ref } from "vue"
+import { onMounted, ref, inject } from "vue"
 
 const curStep = ref(0)
 const guideTabStyle = ref('')
 const showVideo = ref(true)
+const $isMobile = inject('$isMobile')
 const emits = defineEmits(['close'])
 
 onMounted(() => {
@@ -350,6 +351,13 @@ const handleClose = () => {
     transform: translate(-50%, -50%);
     background: url("@/assets/images/guide/Group479-min.png") no-repeat center / contain;
 
+    &.is-mobile {
+      background-image: url("@/assets/images/mobile/tips_mobile-min.png");
+
+      &::after {
+        display: none;
+      }
+    }
     &::after {
       content: '';
       position: absolute;

+ 60 - 26
src/views/PanoView.vue

@@ -28,9 +28,10 @@
         })"
       />
       <button
-        v-if="sceneIdx === 1"
-        class="ship-btn"
-        @click="showShipGame = true"
+        class="game-entry-page-btn"
+        @click="showGameEntryPage({
+          gameName: sceneIdx === 0 ? '广寒宫' : sceneIdx === 1 ? '聊城古船' : '多宝阁',
+        })"
       />
       <button
         v-if="sceneIdx === 0 && cameraIdx === 0"
@@ -51,6 +52,11 @@
         class="character-wrap"
         draggable="false"
       >
+        <div
+          v-if="$isMobile"
+          :class="['character-wrap__menu', isShowMenu && 'active']"
+          @click="isShowMenu = !isShowMenu"
+        />
         <button
           class="name"
           @click="isShowCharacterDesc = true"
@@ -124,26 +130,26 @@
           draggable="false"
         >
         <button
-          class="one btn-on-track"
+          :class="['one btn-on-track', isShowMenu && 'hover']"
           @click="showingContentIdx = 1"
         >
           <span>{{ btnOnTrack1Name }}</span>
         </button>
         <button
-          class="two btn-on-track"
+          :class="['two btn-on-track', isShowMenu && 'hover']"
           @click="showingContentIdx = 2"
         >
           <span>{{ btnOnTrack2Name }}</span>
         </button>
         <button
           v-if="!(sceneIdx === 1 && cameraIdx === 1)"
-          class="three btn-on-track"
+          :class="['three btn-on-track', isShowMenu && 'hover']"
           @click="showingContentIdx = 3"
         >
           <span>{{ btnOnTrack3Name }}</span>
         </button>
         <button
-          :class="['btn-on-track four', (sceneIdx === 1 && cameraIdx === 1) && 'four2']"
+          :class="['btn-on-track four', (sceneIdx === 1 && cameraIdx === 1) && 'four2', isShowMenu && 'hover']"
           @click="router[$isMobile ? 'replace' : 'push']({
             name: 'RelicList',
             query: {
@@ -409,6 +415,12 @@ const btnReturnHomeImgUrl = computed(() => {
 const btnReturnHomeActiveImgUrl = computed(() => {
   return `url(${process.env.VUE_APP_CLI_MODE === 'dev' ? '' : '../'}` + require(`@/assets/images/btn-return-home-active-${sceneIdx.value + 1}.png`) + ')'
 })
+const btnGameEntryPageImgUrl = computed(() => {
+  return `url(${process.env.VUE_APP_CLI_MODE === 'dev' ? '' : '../'}` + require(`@/assets/images/btn-game-entry-page-${sceneIdx.value + 1}.png`) + ')'
+})
+const btnGameEntryPageActiveImgUrl = computed(() => {
+  return `url(${process.env.VUE_APP_CLI_MODE === 'dev' ? '' : '../'}` + require(`@/assets/images/btn-game-entry-page-active-${sceneIdx.value + 1}.png`) + ')'
+})
 
 const btnOnTrack1ImgUrl = computed(() => {
   return `url(${process.env.VUE_APP_CLI_MODE === 'dev' ? '' : '../'}` + require(`@/assets/images/camera-btn-${sceneIdx.value + 1}-${cameraIdx.value + 1}-1.png`) + ')'
@@ -946,6 +958,7 @@ watch(() => store.getters.iframeAttrs, (v) => {
   }
 })
 
+const isShowMenu = ref(false)
 const isShowHotspotDetail = ref(false)
 const isShowHotspotDetail2 = ref(!!route.query.hotspot)
 const isShowHotspotDetail3 = ref(false)
@@ -985,10 +998,11 @@ window.showIframe = (hotspotInfo) => {
   console.log('parent window: showIframe...')
   store.dispatch('openIframePage', hotspotInfo)
 }
-window.showGameEntryPage = function(hotspotInfo) {
+function showGameEntryPage(hotspotInfo) {
   console.log('parent window: showGameEntryPage. param: ', hotspotInfo)
   store.dispatch('openGameEntryPage', hotspotInfo)
 }
+window.showGameEntryPage = showGameEntryPage
 /**
  * end of iframe的逻辑
  */
@@ -1114,47 +1128,47 @@ onMounted(() => {
       width: 100%;
       height: 100%;
     }
-    >button.guide-btn{
+    >button.return-home{
       position: absolute;
       width: 77px;
       height: 77px;
-      top: 128px;
+      top: 43px;
       right: 51px;
-      background-image: url('@/assets/images/guide/tbn_help-min.png');
+      background-image: v-bind(btnReturnHomeImgUrl);
       background-size: cover;
       background-repeat: no-repeat;
       background-position: center center;
       z-index: 5;
+      &:hover{
+        background-image: v-bind(btnReturnHomeActiveImgUrl);
+      }
     }
-    >button.ship-btn{
+    >button.game-entry-page-btn{
       position: absolute;
       width: 77px;
       height: 77px;
       top: 128px;
       right: 51px;
-      background-image: url('@/assets/images/ship-game/tbn_game_boat-min.png');
+      background-image: v-bind(btnGameEntryPageImgUrl);
       background-size: cover;
       background-repeat: no-repeat;
       background-position: center center;
       z-index: 5;
       &:hover{
-        background-image: url('@/assets/images/ship-game/btn_game boat_hover_green-min.png');
+        background-image: v-bind(btnGameEntryPageActiveImgUrl);
       }
     }
-    >button.return-home{
+    >button.guide-btn{
       position: absolute;
       width: 77px;
       height: 77px;
-      top: 43px;
+      top: 213px;
       right: 51px;
-      background-image: v-bind(btnReturnHomeImgUrl);
+      background-image: url('@/assets/images/guide/tbn_help-min.png');
       background-size: cover;
       background-repeat: no-repeat;
       background-position: center center;
       z-index: 5;
-      &:hover{
-        background-image: v-bind(btnReturnHomeActiveImgUrl);
-      }
     }
     >.camera-desc{
       z-index: 7;
@@ -1168,6 +1182,20 @@ onMounted(() => {
       bottom: 0;
       width: 300px;
       height: 452px;
+
+      .character-wrap__menu {
+        position: absolute;
+        left: -10px;
+        bottom: 30px;
+        width: 85px;
+        height: 95px;
+        background: url('@/assets/images/mobile/btn_menu_open-min.png') no-repeat center / contain;
+        z-index: 6;
+
+        &.active {
+          background-image: url('@/assets/images/mobile/btn_menu_close-min.png');
+        }
+      }
       >button.name{
         position: absolute;
         top: 50px;
@@ -1290,7 +1318,8 @@ onMounted(() => {
           line-height: 27px;
           letter-spacing: 5px;
         }
-        &:hover{
+        &:hover,
+        &.hover{
           width: 390px;
           height: 104px;
           transform: translate(-13px, -5px);
@@ -1303,7 +1332,8 @@ onMounted(() => {
         left: 210px;
         top: -42px;
         background-image: v-bind(btnOnTrack1ImgUrl);
-        &:hover{
+        &:hover,
+        &.hover{
           top: -49px;
           left: 217px;
           background-image: v-bind(btnOnTrack1ActiveImgUrl);
@@ -1313,7 +1343,8 @@ onMounted(() => {
         left: 336px;
         top: 62px;
         background-image: v-bind(btnOnTrack2ImgUrl);
-        &:hover{
+        &:hover,
+        &.hover{
           top: 54px;
           background-image: v-bind(btnOnTrack2ActiveImgUrl);
         }
@@ -1322,7 +1353,8 @@ onMounted(() => {
         left: 385px;
         top: 205px;
         background-image: v-bind(btnOnTrack3ImgUrl);
-        &:hover{
+        &:hover,
+        &.hover{
           top: 196px;
           left: 391px;
           background-image: v-bind(btnOnTrack3ActiveImgUrl);
@@ -1332,7 +1364,8 @@ onMounted(() => {
         left: 352px;
         top: 353px;
         background-image: v-bind(btnOnTrack4ImgUrl);
-        &:hover{
+        &:hover,
+        &.hover{
           top: 344px;
           left: 359px;
           background-image: v-bind(btnOnTrack4ActiveImgUrl);
@@ -1342,7 +1375,8 @@ onMounted(() => {
           left: 385px;
           top: 205px;
 
-          &:hover {
+          &:hover,
+          &.hover {
             top: 196px;
             left: 391px;
           }