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天前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
80 24
|
28天前
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
45 3
|
2月前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
优化CSS和JavaScript加载
|
2月前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
Next.js和Nuxt.js在优化CSS和JavaScript加载方面提供了多种策略和工具。Next.js通过代码拆分、图片优化和特定的CSS/JavaScript优化措施提升性能;Nuxt.js则通过代码分割、懒加载、预渲染静态页面、Webpack配置和服务端缓存来实现优化。两者均能有效提高应用性能。
|
2月前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
160 1
|
2月前
|
前端开发 JavaScript 安全
HTML+CSS+JS密码灯登录表单
通过结合使用HTML、CSS和JavaScript,我们创建了一个带有密码强度指示器的登录表单。这不仅提高了用户体验,还帮助用户创建更安全的密码。希望本文的详细介绍和代码示例能帮助您在实际项目中实现类似功能,提升网站的安全性和用户友好性。
53 3
|
2月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
23 0
|
2月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
72 7
|
2月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
46 6