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);
目录
相关文章
|
9月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
174 2
|
5月前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
154 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
9月前
|
JavaScript 前端开发
js之一次性定时器
js之一次性定时器
78 1
|
9月前
|
JavaScript 前端开发
js之永久定时器
js之永久定时器
70 1
|
8月前
|
JavaScript 前端开发 开发者
JavaScript框架React vs. Vue:一场性能与易用性的较量
JavaScript框架React vs. Vue:一场性能与易用性的较量
153 0
|
10月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
9月前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
492 0
|
9月前
|
JavaScript
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
深入解析:JS与Vue中事件委托(事件代理)的高效实现方法
182 0
|
9月前
|
JavaScript 前端开发
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
前端js,vue系统使用iframe嵌入第三方系统的父子系统的通信
|
10月前
|
JavaScript 前端开发
react Or vue中引入animate.css
本文介绍了如何在React或Vue项目中引入animate.css库来使用动画效果,包括通过npm安装或在线链接引入,并展示了如何在React组件和Vue路由过渡中使用动画类。
229 0

热门文章

最新文章