分享一个VUE页面声音+标题闪烁通知的组件(附使用方法)

 3277

本篇文章给大家分享一个VUE页面声音+标题闪烁通知的组件,聊聊具体怎么使用这个组件 ,希望对大家有所帮助。


分享一个VUE页面声音+标题闪烁通知的组件(附使用方法)


1.使用方法

1.1 组件模板引用

  1. <PageNotice ref="pageNotice" sound="/xxx/new_message.mp3" />

1.2 支持的参数

sound: 通知时播放的声音

1.3 动态调用方法

  1. $refs.pageNotice.tip('你好','新消息') $refs.pageNotice.tip('有新客户访问')


2.组件源码

PageNotice 组件源代码如下

  1. <template>
  2.     <div>
  3.         <audio ref="audio" :src="sound"></audio>
  4.     </div>
  5. </template>
  6. <script>
  7. export default {
  8.     name: "PageNotice",
  9.     props: {
  10.         sound: {
  11.             type: String,
  12.             default: ''
  13.         },
  14.     },
  15.     data() {
  16.         return {
  17.             tipTimer: null,
  18.             tipTimerCount: 0,
  19.             titleOld: null,
  20.         }
  21.     },
  22.     methods: {
  23.         tip(msg, type) {
  24.             this.doPageTitle(msg, type)
  25.             if (this.sound) {
  26.                 this.doPlaySound()
  27.             }
  28.         },
  29.         doClearTimer() {
  30.             clearInterval(this.tipTimer)
  31.             this.tipTimer = null
  32.             if (this.titleOld) {
  33.                 window.document.title = this.titleOld
  34.             }
  35.             this.tipTimerCount = 0
  36.         },
  37.         doPageTitle(msg, type) {
  38.             type = type || '提醒'
  39.             if (this.tipTimer) {
  40.                 this.doClearTimer()
  41.             }
  42.             this.titleOld = document.title
  43.             this.tipTimerCount = 0
  44.             this.tipTimer = setInterval(() => {
  45.                 this.tipTimerCount++
  46.                 if (this.tipTimerCount % 2 === 0) {
  47.                     window.document.title = '【' + type + '】' + msg
  48.                 } else {
  49.                     window.document.title = '' + msg
  50.                 }
  51.                 if (this.tipTimerCount > 6) {
  52.                     this.doClearTimer()
  53.                 }
  54.             }, 500)
  55.         },
  56.         doPlaySound() {
  57.             let audio = this.$refs.audio
  58.             if (!audio) {
  59.                 return
  60.             }
  61.             try {
  62.                 audio.pause()
  63.                 audio.play()
  64.             } catch (e) {
  65.             }
  66.         }
  67.     }
  68. }
  69. </script>


本文网址:https://www.zztuku.com/index.php/detail-13548.html
站长图库 - 分享一个VUE页面声音+标题闪烁通知的组件(附使用方法)
申明:本文转载于《learnku》,如有侵犯,请 联系我们 删除。

评论(0)条

您还没有登录,请 登录 后发表评论!

提示:请勿发布广告垃圾评论,否则封号处理!!

    编辑推荐