鱼C论坛

 找回密码
 立即注册
查看: 3176|回复: 4

[已解决]实现页面跳转bgm连续播放

[复制链接]
发表于 2020-2-13 15:46:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
额 就像问题里面说的。。。请问怎么样才能实现,我的1.html跳转到2.html后,背景音乐能够不间断的连续播放?
最佳答案
2020-2-14 21:23:57
本帖最后由 sukiwhip 于 2020-2-14 21:31 编辑
  1. <!DOCTYPE html>
  2. <html lang="en">

  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <script src="https://cn.vuejs.org/js/vue.min.js"></script>
  7.   <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
  8.   <title>test</title>
  9. </head>

  10. <body>
  11.   <div id="root">
  12.     <router-view></router-view>
  13.     <div id="music">
  14.       <span>模拟歌曲播放计时:</span>
  15.       <span v-text="musicTime"></span>
  16.     </div>
  17.   </div>
  18. </body>

  19. <template id="home">
  20.   <div>
  21.     <router-link to="/home/1">跳到页面1</router-link>
  22.     <br><br>
  23.     <router-link to="/home/2">跳到页面2</router-link>
  24.     <br><br>
  25.     <div>注意,点击后 url 很明显是有变化,路由跳转了,把这条线上面的内容自由选择咔嚓掉,就是两个单独的页面,里面路由再怎么跑自己喜欢就好了,下面的音乐计时在全局上,一点都不影响</div>
  26.     <hr>
  27.     <router-view></router-view>
  28.   </div>
  29. </template>

  30. <template id="one">
  31.   <div>
  32.     我是页面1
  33.   </div>
  34. </template>

  35. <template id="two">
  36.   <div>
  37.     我是页面2
  38.   </div>
  39. </template>

  40. <script>
  41.   const router = new VueRouter({
  42.     routes: [{
  43.       path: "/home",
  44.       component: {
  45.         template: "#home"
  46.       },
  47.       children: [{
  48.         path: "1",
  49.         component: {
  50.           template: "#one"
  51.         }
  52.       }, {
  53.         path: "2",
  54.         component: {
  55.           template: "#two"
  56.         }
  57.       }]
  58.     }, {
  59.       path: "*",
  60.       redirect: "/home/1"
  61.     }]
  62.   })

  63.   new Vue({
  64.     el: "#root",
  65.     router,
  66.     data() {
  67.       return {
  68.         musicTime: 0
  69.       }
  70.     },
  71.     methods: {
  72.       musicGo() {
  73.         let that = this;
  74.         setInterval(function () {
  75.           that.musicTime++
  76.         }, 1000)
  77.       }
  78.     },
  79.     mounted() {
  80.       this.musicGo()
  81.     }
  82.   })
  83. </script>

  84. <style>
  85.   #music {
  86.     position: fixed;
  87.     bottom: 100px;
  88.     color: #f00;
  89.   }
  90. </style>

  91. </html>
复制代码


直接给你个 demo,把最佳答案抱走
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-2-13 16:22:02 | 显示全部楼层
比如我在html1播放了一首歌  转到html2页面接着刚刚的继续播放?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-13 17:40:25 | 显示全部楼层
目前光是页面跳转无法实现连续播放

需要后台才可以
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 20:03:08 | 显示全部楼层
用单页面刷新的框架开发前端,在框架内的路由跳转,最外层的音乐就不会被刷掉
比如用 vuejs
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-14 21:23:57 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sukiwhip 于 2020-2-14 21:31 编辑
  1. <!DOCTYPE html>
  2. <html lang="en">

  3. <head>
  4.   <meta charset="UTF-8">
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6.   <script src="https://cn.vuejs.org/js/vue.min.js"></script>
  7.   <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
  8.   <title>test</title>
  9. </head>

  10. <body>
  11.   <div id="root">
  12.     <router-view></router-view>
  13.     <div id="music">
  14.       <span>模拟歌曲播放计时:</span>
  15.       <span v-text="musicTime"></span>
  16.     </div>
  17.   </div>
  18. </body>

  19. <template id="home">
  20.   <div>
  21.     <router-link to="/home/1">跳到页面1</router-link>
  22.     <br><br>
  23.     <router-link to="/home/2">跳到页面2</router-link>
  24.     <br><br>
  25.     <div>注意,点击后 url 很明显是有变化,路由跳转了,把这条线上面的内容自由选择咔嚓掉,就是两个单独的页面,里面路由再怎么跑自己喜欢就好了,下面的音乐计时在全局上,一点都不影响</div>
  26.     <hr>
  27.     <router-view></router-view>
  28.   </div>
  29. </template>

  30. <template id="one">
  31.   <div>
  32.     我是页面1
  33.   </div>
  34. </template>

  35. <template id="two">
  36.   <div>
  37.     我是页面2
  38.   </div>
  39. </template>

  40. <script>
  41.   const router = new VueRouter({
  42.     routes: [{
  43.       path: "/home",
  44.       component: {
  45.         template: "#home"
  46.       },
  47.       children: [{
  48.         path: "1",
  49.         component: {
  50.           template: "#one"
  51.         }
  52.       }, {
  53.         path: "2",
  54.         component: {
  55.           template: "#two"
  56.         }
  57.       }]
  58.     }, {
  59.       path: "*",
  60.       redirect: "/home/1"
  61.     }]
  62.   })

  63.   new Vue({
  64.     el: "#root",
  65.     router,
  66.     data() {
  67.       return {
  68.         musicTime: 0
  69.       }
  70.     },
  71.     methods: {
  72.       musicGo() {
  73.         let that = this;
  74.         setInterval(function () {
  75.           that.musicTime++
  76.         }, 1000)
  77.       }
  78.     },
  79.     mounted() {
  80.       this.musicGo()
  81.     }
  82.   })
  83. </script>

  84. <style>
  85.   #music {
  86.     position: fixed;
  87.     bottom: 100px;
  88.     color: #f00;
  89.   }
  90. </style>

  91. </html>
复制代码


直接给你个 demo,把最佳答案抱走
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-8 18:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表