• 技术文章 >web前端 >Vue.js

    分享一个VUE页面声音+标题闪烁通知的组件

    藏色散人藏色散人2023-03-14 17:28:38转载287

    本篇文章给大家带来了关于VUE的相关知识,其中主要跟大家分享一个VUE页面声音+标题闪烁通知的组件,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

    一个VUE页面声音+标题闪烁通知的组件

    1、使用方法

    1.1 组件模板引用

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

    1.2 支持的参数

    sound: 通知时播放的声音

    1.3 动态调用方法

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

    2、组件源码

    PageNotice 组件源代码如下

    <template>
        <div>
            <audio ref="audio" :src="sound"></audio>
        </div>
    </template>
    <script>
    export default {
        name: "PageNotice",
        props: {
            sound: {
                type: String,
                default: ''
            },
        },
        data() {
            return {
                tipTimer: null,
                tipTimerCount: 0,
                titleOld: null,
            }
        },
        methods: {
            tip(msg, type) {
                this.doPageTitle(msg, type)
                if (this.sound) {
                    this.doPlaySound()
                }
            },
            doClearTimer() {
                clearInterval(this.tipTimer)
                this.tipTimer = null
                if (this.titleOld) {
                    window.document.title = this.titleOld
                }
                this.tipTimerCount = 0
            },
            doPageTitle(msg, type) {
                type = type || '提醒'
                if (this.tipTimer) {
                    this.doClearTimer()
                }
                this.titleOld = document.title
                this.tipTimerCount = 0
                this.tipTimer = setInterval(() => {
                    this.tipTimerCount++
                    if (this.tipTimerCount % 2 === 0) {
                        window.document.title = '【' + type + '】' + msg
                    } else {
                        window.document.title = '' + msg
                    }
                    if (this.tipTimerCount > 6) {
                        this.doClearTimer()
                    }
                }, 500)
            },
            doPlaySound() {
                let audio = this.$refs.audio
                if (!audio) {
                    return
                }
                try {
                    audio.pause()
                    audio.play()
                } catch (e) {
                }
            }
        }
    }
    </script>

    推荐学习:《vue.js视频教程

    以上就是分享一个VUE页面声音+标题闪烁通知的组件的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:learnku,如有侵犯,请联系admin@php.cn删除
    专题推荐:Vue
    上一篇:深入浅析Vue3中的生命周期函数 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • vue学习之聊聊模板编译原理• 聊聊vue3中怎么使用高德地图api• 详解Vue3中的setup语法糖、computed函数、watch函数• 深入浅析Vue3中的生命周期函数
    1/1

    PHP中文网