vue 模拟随机变速的动态打字特效【支持多行文本】(含css实现闪烁光标,js动态改变setInterval定时器的时间间隔)

简介: vue 模拟随机变速的动态打字特效【支持多行文本】(含css实现闪烁光标,js动态改变setInterval定时器的时间间隔)

随机变速的动态打字特效–最终效果

随机变速的动态打字特效–完整代码

<template>
    <div class="contentBox">
        <span>{{showContent}}</span>
        <span v-if="showBlinkCursor" class="blinkCursor">|</span>
    </div>
</template>
<script>
    export default {
        mounted() {
            let that = this
            let index = 0;
            var myFunction = function () {
                clearInterval(timer);
                if (index < that.allContent.length) {
                    that.interval = Math.random() * 500
                    that.showContent += that.allContent[index]
                    index++;
                    timer = setInterval(myFunction, that.interval);
                } else {
                    that.showBlinkCursor = false
                }
            }
            var timer = setInterval(myFunction, that.interval);
        },
        data() {
            return {
                interval: 100,
                showBlinkCursor: true,
                showContent: '',
                allContent:
                    "多想一醒来 晨风就能抚平忧伤\n" +
                    "多想一转身 目光就融化掉冰霜\n" +
                    "多想一抬头 看见你微笑的脸庞\n" +
                    "多想你能够 把喜怒哀乐对我讲\n" +
                    "多想一家人 心朝着同一个方向\n" +
                    "多想一路上 包容着温暖的体谅\n" +
                    "多想一放下 世界就还给你梦想\n" +
                    "多想你知道 爱就在我心底流淌\n" +
                    "生活总该迎着光亮\n" +
                    "再跌跌撞撞也要坚强\n" +
                    "数着流星降落你肩膀\n" +
                    "而我一直陪伴在你身旁\n" +
                    "生活总该迎着光亮\n" +
                    "失望过后拥抱更多希望\n" +
                    "夜的尽头叫做阳光\n" +
                    "手中的幸福 终将会绽放"
            }
        }
    };
</script>
<style scoped>
    .contentBox {
        white-space: pre-wrap;
    }

    .blinkCursor {
        animation: Blink 1s ease-in 0s infinite;
    }

    @keyframes Blink {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }
</style>

css 闪烁光标

<span class="blinkCursor">|</span>
 
    .blinkCursor {
        animation: Blink 1s ease-in 0s infinite;
    }

    @keyframes Blink {
        0% {
            opacity: 0;
        }
        100% {
            opacity: 1;
        }
    }

js 动态改变setInterval定时器的时间间隔

var interval = 500
var myFunction = function () {
    // 必须先清除掉定时器,再重新创建定时器,才能改变时间间隔
    clearInterval(timer);
    interval = Math.random() * 500
    timer = setInterval(myFunction, interval);
}
var timer = setInterval(myFunction, interval);
目录
相关文章
|
2月前
|
JavaScript 前端开发 Go
CSS 与 JS 对 DOM 解析和渲染的影响
【10月更文挑战第16天】CSS 和 JS 会在一定程度上影响 DOM 解析和渲染,了解它们之间的相互作用以及采取适当的优化措施是非常重要的。通过合理的布局和加载策略,可以提高网页的性能和用户体验,确保页面能够快速、流畅地呈现给用户。在实际开发中,要根据具体情况进行权衡和调整,以达到最佳的效果。
|
15天前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
67 1
|
20天前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
34 3
|
1月前
|
JSON 移动开发 数据格式
html5+css3+js移动端带歌词音乐播放器代码
音乐播放器特效是一款html5+css3+js制作的手机移动端音乐播放器代码,带歌词显示。包括支持单曲循环,歌词显示,歌曲搜索,音量控制,列表循环等功能。利用json获取音乐歌单和歌词,基于html5 audio属性手机音乐播放器代码。
94 6
|
2月前
|
JavaScript 前端开发
js之一次性定时器
js之一次性定时器
14 1
|
2月前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
19 1
|
3月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
50 0
JS配合CSS3实现动画和拖动小星星小Demo
|
3月前
|
前端开发 JavaScript
uniapp动态修改css样式(通过js来修改css样式)
uniapp动态修改css样式(通过js来修改css样式)
|
3月前
|
Web App开发 前端开发 JavaScript
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
HTML/CSS/JS学习笔记 Day3(HTML--网页标签 下)
|
3月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。