hookehuyr

fix 详情页tab切换因为绝对定位,跳转显示问题修复

1 <!-- 1 <!--
2 * @Date: 2024-09-15 22:08:49 2 * @Date: 2024-09-15 22:08:49
3 * @LastEditors: hookehuyr hookehuyr@gmail.com 3 * @LastEditors: hookehuyr hookehuyr@gmail.com
4 - * @LastEditTime: 2024-09-21 10:49:05 4 + * @LastEditTime: 2024-09-21 11:43:17
5 * @FilePath: /map-demo/src/views/bieyuan/info.vue 5 * @FilePath: /map-demo/src/views/bieyuan/info.vue
6 * @Description: 文件描述 6 * @Description: 文件描述
7 --> 7 -->
...@@ -15,9 +15,10 @@ ...@@ -15,9 +15,10 @@
15 </van-swipe-item> 15 </van-swipe-item>
16 </van-swipe> 16 </van-swipe>
17 </van-config-provider> 17 </van-config-provider>
18 - <div style="position: absolute; bottom: -13px; left: 0; right: 0; width: 100%; height: 1rem; box-shadow: rgba(241, 242, 248, 0.8) 0px -3px 20px 12px"></div> 18 + <div class="header-z"></div>
19 </div> 19 </div>
20 - <div style=" position: absolute; top: 12.5rem;"> 20 + <!-- <div style="position: absolute; top: 12.5rem;"> -->
21 + <div>
21 <div class="info-content-wrapper"> 22 <div class="info-content-wrapper">
22 <div class="info-header"> 23 <div class="info-header">
23 <div> 24 <div>
...@@ -27,7 +28,7 @@ ...@@ -27,7 +28,7 @@
27 <div @click="goTo()" class="info-btn">前往</div> 28 <div @click="goTo()" class="info-btn">前往</div>
28 </div> 29 </div>
29 <div class="van-hairline--bottom"> 30 <div class="van-hairline--bottom">
30 - <van-tabs v-model:active="active" color="#DD7850" title-active-color="#DD7850" sticky> 31 + <van-tabs ref="tabsRef" v-model:active="active" @click-tab="clickTab" color="#DD7850" title-active-color="#DD7850" sticky>
31 <van-tab title="介 绍"> 32 <van-tab title="介 绍">
32 <div class="info-content"> 33 <div class="info-content">
33 <p style="line-height: 1.75; padding: 0 0.85rem; color: #47525F;">选佛场是一个宗教活动场所,集禅堂与讲堂功能于一体。其设计仿制古代石窟样式,把古代人修行的场所“石窟”搬进室内。禅堂内的释迦牟尼佛像,仿麦积山石窟第44号特窟“东方的微笑”的造型。禅堂设计自然古朴,匠心独运,星光、烛光、月光三光辉映,营造出“一个人不孤单,一千人不喧闹”的宁静祥和的氛围。禅堂可容纳千人,开展讲经、禅修、法会等多种活动,提供礼佛、供灯、静坐等体验。</p> 34 <p style="line-height: 1.75; padding: 0 0.85rem; color: #47525F;">选佛场是一个宗教活动场所,集禅堂与讲堂功能于一体。其设计仿制古代石窟样式,把古代人修行的场所“石窟”搬进室内。禅堂内的释迦牟尼佛像,仿麦积山石窟第44号特窟“东方的微笑”的造型。禅堂设计自然古朴,匠心独运,星光、烛光、月光三光辉映,营造出“一个人不孤单,一千人不喧闹”的宁静祥和的氛围。禅堂可容纳千人,开展讲经、禅修、法会等多种活动,提供礼佛、供灯、静坐等体验。</p>
...@@ -64,7 +65,7 @@ ...@@ -64,7 +65,7 @@
64 <div class="van-hairline--bottom" style="margin: 0 1rem;"></div> 65 <div class="van-hairline--bottom" style="margin: 0 1rem;"></div>
65 </div> 66 </div>
66 </van-tab> 67 </van-tab>
67 - <van-tab title="体 验"> 68 + <van-tab title="体 验" id="tab-3">
68 <div style="padding: 0 1rem;"> 69 <div style="padding: 0 1rem;">
69 <div style="padding: 1rem;"> 70 <div style="padding: 1rem;">
70 <div style="color: #DD7850;">•&nbsp;供灯</div> 71 <div style="color: #DD7850;">•&nbsp;供灯</div>
...@@ -109,6 +110,8 @@ import { useRoute, useRouter } from 'vue-router' ...@@ -109,6 +110,8 @@ import { useRoute, useRouter } from 'vue-router'
109 import { storeToRefs } from 'pinia' 110 import { storeToRefs } from 'pinia'
110 import { mainStore } from '@/store'; 111 import { mainStore } from '@/store';
111 112
113 +import $ from 'jquery';
114 +
112 const store = mainStore(); 115 const store = mainStore();
113 const { audio_status, audio_entity } = storeToRefs(store); 116 const { audio_status, audio_entity } = storeToRefs(store);
114 117
...@@ -214,6 +217,11 @@ const voicePause = () => { ...@@ -214,6 +217,11 @@ const voicePause = () => {
214 store.changeAudioStatus('pause'); 217 store.changeAudioStatus('pause');
215 } 218 }
216 219
220 +const tabsRef = ref(null);
221 +const clickTab = (evt) => {
222 + tabsRef.value.resize();
223 +}
224 +
217 watch( 225 watch(
218 () => audio_status.value, 226 () => audio_status.value,
219 (v) => { 227 (v) => {
...@@ -236,12 +244,25 @@ defineExpose({ ...@@ -236,12 +244,25 @@ defineExpose({
236 height: 100vh; 244 height: 100vh;
237 overflow: scroll; 245 overflow: scroll;
238 position: relative; 246 position: relative;
247 + .header-z {
248 + position: absolute;
249 + bottom: 0;
250 + left: 0;
251 + right: 0;
252 + height: 1rem;
253 + box-shadow: rgba(241, 242, 248, 0.8) 0px -3px 20px 12px;
254 + background-color: #f7f7f7;
255 + margin: 0 1rem;
256 + border-top-left-radius: 0.5rem;
257 + border-top-right-radius: 0.5rem;
258 + }
239 .info-content-wrapper { 259 .info-content-wrapper {
240 box-shadow: 0px -3px 6px 0 rgba(241, 242, 248, 0.8); 260 box-shadow: 0px -3px 6px 0 rgba(241, 242, 248, 0.8);
241 margin: 1rem; 261 margin: 1rem;
242 margin-top: 0; 262 margin-top: 0;
243 // padding: 1rem; 263 // padding: 1rem;
244 - border-radius: 0.5rem; 264 + border-bottom-left-radius: 0.5rem;
265 + border-bottom-right-radius: 0.5rem;
245 background-color: white; 266 background-color: white;
246 .info-header { 267 .info-header {
247 padding: 1rem 2rem 0; 268 padding: 1rem 2rem 0;
......