Showing
2 changed files
with
38 additions
and
5 deletions
| ... | @@ -18,8 +18,8 @@ | ... | @@ -18,8 +18,8 @@ |
| 18 | <div class="progress-ring"> | 18 | <div class="progress-ring"> |
| 19 | <div class="circle"> | 19 | <div class="circle"> |
| 20 | <div class="pause-icon"> | 20 | <div class="pause-icon"> |
| 21 | - <van-icon @click="handleAudioPause(item, index)" v-if="item.play" name="https://cdn.ipadbiz.cn/bieyuan/map/icon/pauseButton@3x.png" size="2.05rem" /> | 21 | + <van-icon @click="handleAudioPause(item, index)" v-if="item.play" name="https://cdn.ipadbiz.cn/bieyuan/map/icon/pauseButton1@3x.png" size="2.2rem" /> |
| 22 | - <van-icon @click="handleAudioPlay(item, index)" v-else name="https://cdn.ipadbiz.cn/bieyuan/map/icon/play@3x.png" size="2.05rem" /> | 22 | + <van-icon @click="handleAudioPlay(item, index)" v-else name="https://cdn.ipadbiz.cn/bieyuan/map/icon/play1@3x.png" size="2.2rem" /> |
| 23 | </div> | 23 | </div> |
| 24 | <div :class="['progress', item.play ? 'checked' : '']"></div> | 24 | <div :class="['progress', item.play ? 'checked' : '']"></div> |
| 25 | </div> | 25 | </div> |
| ... | @@ -83,6 +83,7 @@ const onClose = () => { // 关闭列表回调 | ... | @@ -83,6 +83,7 @@ const onClose = () => { // 关闭列表回调 |
| 83 | // 播放进度条 | 83 | // 播放进度条 |
| 84 | $('.progress').css('background', 'conic-gradient(#f07142 0%, transparent 0%)'); | 84 | $('.progress').css('background', 'conic-gradient(#f07142 0%, transparent 0%)'); |
| 85 | audio_list.value.forEach(item => item.play = false); | 85 | audio_list.value.forEach(item => item.play = false); |
| 86 | + audio_index.value = null; | ||
| 86 | emit('close'); | 87 | emit('close'); |
| 87 | } | 88 | } |
| 88 | 89 | ||
| ... | @@ -109,6 +110,21 @@ onMounted(() => { | ... | @@ -109,6 +110,21 @@ onMounted(() => { |
| 109 | src: 'https://img.tukuppt.com/newpreview_music/01/65/86/63c0264040bd4441.mp3', | 110 | src: 'https://img.tukuppt.com/newpreview_music/01/65/86/63c0264040bd4441.mp3', |
| 110 | play: false | 111 | play: false |
| 111 | }, | 112 | }, |
| 113 | + { | ||
| 114 | + title: '3', | ||
| 115 | + src: 'https://img.tukuppt.com/newpreview_music/01/62/01/63b515415b482633.mp3', | ||
| 116 | + play: false | ||
| 117 | + }, | ||
| 118 | + { | ||
| 119 | + title: '2', | ||
| 120 | + src: 'https://img.tukuppt.com/newpreview_music/01/66/20/63c0c3db3f8de739.mp3', | ||
| 121 | + play: false | ||
| 122 | + }, | ||
| 123 | + { | ||
| 124 | + title: '风纺声(测试)(风的声音)风纺声(测试)(风的声音)', | ||
| 125 | + src: 'https://img.tukuppt.com/newpreview_music/01/65/86/63c0264040bd4441.mp3', | ||
| 126 | + play: false | ||
| 127 | + }, | ||
| 112 | ]; | 128 | ]; |
| 113 | }); | 129 | }); |
| 114 | 130 | ||
| ... | @@ -239,6 +255,11 @@ watch( | ... | @@ -239,6 +255,11 @@ watch( |
| 239 | }, | 255 | }, |
| 240 | { immediate: true } | 256 | { immediate: true } |
| 241 | ); | 257 | ); |
| 258 | + | ||
| 259 | +onUnmounted(() => { // 离开页面时关闭音频播放 | ||
| 260 | + onClose(); | ||
| 261 | + store.changeAudioStatus('pause'); | ||
| 262 | +}) | ||
| 242 | </script> | 263 | </script> |
| 243 | 264 | ||
| 244 | <style lang="less" scoped> | 265 | <style lang="less" scoped> |
| ... | @@ -285,7 +306,7 @@ watch( | ... | @@ -285,7 +306,7 @@ watch( |
| 285 | } | 306 | } |
| 286 | } | 307 | } |
| 287 | 308 | ||
| 288 | - .progress-ring { | 309 | +.progress-ring { |
| 289 | position: relative; | 310 | position: relative; |
| 290 | width: 2.5rem; | 311 | width: 2.5rem; |
| 291 | height: 2.5rem; | 312 | height: 2.5rem; | ... | ... |
| 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-10-09 11:06:12 | 4 | + * @LastEditTime: 2024-10-09 13:43:35 |
| 5 | * @FilePath: /map-demo/src/views/bieyuan/info.vue | 5 | * @FilePath: /map-demo/src/views/bieyuan/info.vue |
| 6 | * @Description: 文件描述 | 6 | * @Description: 文件描述 |
| 7 | --> | 7 | --> |
| ... | @@ -34,7 +34,7 @@ | ... | @@ -34,7 +34,7 @@ |
| 34 | </div> | 34 | </div> |
| 35 | <div class="info-sub-title">{{ page_details.note }}</div> | 35 | <div class="info-sub-title">{{ page_details.note }}</div> |
| 36 | </div> | 36 | </div> |
| 37 | - <div style="margin-top: 0.5rem;"> | 37 | + <div id="tab-wrapper" style="margin-top: 0.5rem;"> |
| 38 | <van-config-provider :theme-vars="themeVars"> | 38 | <van-config-provider :theme-vars="themeVars"> |
| 39 | <van-tabs ref="tabsRef" v-model:active="active" @click-tab="clickTab" color="#DD7850" title-active-color="#DD7850" title-inactive-color="#DD7850" :shrink="show_shrink" sticky animated> | 39 | <van-tabs ref="tabsRef" v-model:active="active" @click-tab="clickTab" color="#DD7850" title-active-color="#DD7850" title-inactive-color="#DD7850" :shrink="show_shrink" sticky animated> |
| 40 | <van-tab title="介 绍" v-if="page_details.introduction"> | 40 | <van-tab title="介 绍" v-if="page_details.introduction"> |
| ... | @@ -179,6 +179,7 @@ const stopAudio = (item, index) => { | ... | @@ -179,6 +179,7 @@ const stopAudio = (item, index) => { |
| 179 | 179 | ||
| 180 | const audio = ref(new Audio()); | 180 | const audio = ref(new Audio()); |
| 181 | const img_height = ref('15rem'); | 181 | const img_height = ref('15rem'); |
| 182 | +const scrollTop = ref(0); | ||
| 182 | 183 | ||
| 183 | onMounted(async () => { | 184 | onMounted(async () => { |
| 184 | // 通过ID查询到标记点详情 | 185 | // 通过ID查询到标记点详情 |
| ... | @@ -219,6 +220,12 @@ onMounted(async () => { | ... | @@ -219,6 +220,12 @@ onMounted(async () => { |
| 219 | var screenHeight = screenWidth * 3 / 4; | 220 | var screenHeight = screenWidth * 3 / 4; |
| 220 | // 设置容器的高度 | 221 | // 设置容器的高度 |
| 221 | img_height.value = screenHeight + 'px'; | 222 | img_height.value = screenHeight + 'px'; |
| 223 | + // | ||
| 224 | + nextTick(() => { | ||
| 225 | + $('.info-page').on('scroll', (evt) => { | ||
| 226 | + scrollTop.value = $(evt.currentTarget).scrollTop(); // 获取滚动的垂直距离 | ||
| 227 | + }) | ||
| 228 | + }) | ||
| 222 | }); | 229 | }); |
| 223 | 230 | ||
| 224 | onUnmounted(() => { // 离开页面时关闭音频播放 | 231 | onUnmounted(() => { // 离开页面时关闭音频播放 |
| ... | @@ -307,6 +314,11 @@ const clickTab = (evt) => { // 标签切换 | ... | @@ -307,6 +314,11 @@ const clickTab = (evt) => { // 标签切换 |
| 307 | // 图片有5个像素的圆角 | 314 | // 图片有5个像素的圆角 |
| 308 | $(img).css('border-radius', '5px'); | 315 | $(img).css('border-radius', '5px'); |
| 309 | }); | 316 | }); |
| 317 | + // 滚动高度大于tabs高度后才滚动到指定高度 | ||
| 318 | + let offsetTop = $('#tab-wrapper')[0].offsetTop; | ||
| 319 | + if (scrollTop.value >= offsetTop) { | ||
| 320 | + $('.info-page').scrollTop(offsetTop); | ||
| 321 | + } | ||
| 310 | }); | 322 | }); |
| 311 | } | 323 | } |
| 312 | 324 | ... | ... |
-
Please register or login to post a comment