Home > Web Front-end > Vue.js > Share a VUE page sound + title flash notification component (with usage instructions)

Share a VUE page sound + title flash notification component (with usage instructions)

藏色散人
Release: 2022-12-12 20:20:50
forward
2150 people have browsed it

This article will share with you a VUE page sound title flash notification component. Let’s talk about how to use this component. I hope it will be helpful to everyone.

Share a VUE page sound + title flash notification component (with usage instructions)

[Related recommendations: vuejs video tutorial, web front-end development

1. How to use

1.1 Component template reference

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

1.2 Supported parameters

sound: the sound played during notification

1.3 Dynamic calling method

$refs.pageNotice.tip(&#39;你好&#39;,&#39;新消息&#39;) $refs.pageNotice.tip(&#39;有新客户访问&#39;)
Copy after login

2. Component source code

PageNotice component source code is as follows

<template>
    <div>
        <audio ref="audio" :src="sound"></audio>
    </div>
</template>
<script>
export default {
    name: "PageNotice",
    props: {
        sound: {
            type: String,
            default: &#39;&#39;
        },
    },
    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 || &#39;提醒&#39;
            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 = &#39;【&#39; + type + &#39;】&#39; + msg
                } else {
                    window.document.title = &#39;&#39; + 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>
Copy after login

(Learning video sharing: vuejs introductory tutorial, Basic programming video)

The above is the detailed content of Share a VUE page sound + title flash notification component (with usage instructions). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
vue
source:learnku.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template