JavaScript - 好玩的打字动画

news2024/11/29 2:36:10

效果预览:
JS打字动画效果预览动图
请添加图片描述

🚀HTML版本

<!DOCTYPE html>
<html>
<head>
    <title>打字动画示例</title>
    <style>
        .typewriter {
            color: #000;
            overflow: hidden; /* 隐藏溢出的文本 */
            white-space: nowrap; /* 不换行 */
            border-right: .15em solid #000; /* 添加光标样式 */
            animation: blink-caret .75s step-end infinite;
        }

        /* 光标闪烁 */
        @keyframes blink-caret {
            from, to {
                border-color: transparent
            }
            50% {
                border-color: #000
            }
        }
    </style>

    <script>
        // 页面加载完成后执行
        window.onload = function () {
            // 获取文本节点
            var textNode = document.getElementById('text');

            // 获取文本内容
            var text = textNode.innerHTML;

            // 清空文本内容
            textNode.innerHTML = '';

            // 逐个显示字符的定时器
            setTimeout(() => {
                var timer = setInterval(function () {
                    // 检查是否已显示完全部字符
                    if (text.length <= 0) {
                        clearInterval(timer);
                        textNode.classList.remove('typewriter');
                        return;
                    }

                    // 取出第一个字符并在页面上显示
                    var char = text.substring(0, 1);
                    textNode.innerHTML += char;
                    // 移除已显示的字符
                    text = text.substring(1);
                }, 50);
            }, 2000);
        };
    </script>
</head>
<body>
<div>
    <span id="text" class="typewriter">横向领域和垂直领域是两个在不同层面上对领域或行业的分类方式。</span>
</div>
</body>
</html>

🚀Vue2版本

<template>
  <div class="typing-data-container">
    <div class="typing-data-question">
      <el-row>
        什么是横向领域和垂直领域?
        <el-button type="primary" icon="el-icon-search" circle @click="getAnswer" />
        <el-button type="danger" icon="el-icon-delete" circle @click="clearAnswer" />
      </el-row>
    </div>
    <div v-show="result2">
      <el-card shadow="hover">
        {{ result2 }}
      </el-card>
    </div>
  </div>
</template>

<script>
export default {
  name: 'TypingData',
  data() {
    return {
      typingCursor: true,
      rawData: '横向领域和垂直领域是两个在不同层面上对领域或行业的分类方式。\n' +
        '\n' +
        '横向领域(Horizontal Domain):指的是跨越多个行业或领域的广泛应用。在横向领域中,一种解决方案、技术或产品可以适用于多个不同的行业或领域。例如,大数据分析、人工智能、云计算等技术和解决方案可以在各种行业中应用,如金融、医疗、零售等。\n' +
        '\n' +
        '垂直领域(Vertical Domain):指的是特定的行业或领域,也称为“垂直市场”。在垂直领域中,解决方案、技术或产品专注于满足特定行业的需求和特点。例如,医疗健康领域的电子病历系统、金融领域的支付解决方案、零售领域的电子商务平台等。\n' +
        '\n' +
        '横向领域和垂直领域的划分有助于更好地理解和分类不同的市场、产品和服务。横向领域解决方案可以在多个行业中应用,具有更广泛的适用性。而垂直领域解决方案则更专注于特定行业的需求和特点,可以提供更定制化和针对性的解决方案。',
      result2: '',
      result2Timer: null
    }
  },
  methods: {
    getAnswer() {
      this.result2 = '🔍处理中...'
      // 逐个显示字符的定时器
      setTimeout(() => {
        this.result2 = ''
        const words = this.rawData.split('')
        let currentPtr = 0
        this.result2Timer = setInterval(() => {
          // 检查是否已显示完全部字符
          if (currentPtr >= words.length) {
            clearInterval(this.result2Timer)
            this.typingCursor = false
            return
          }
          this.result2 += words[currentPtr]
          currentPtr++
        }, 50)
      }, 2000)
    },
    clearAnswer() {
      this.result2 = ''
      clearInterval(this.result2Timer)
    }
  }
}
</script>

<style lang="scss" scoped>
.typing-data {
  &-container {
    margin: 30px;
    white-space: pre-line; /* pre-line、nowrap */
  }

  &-question {
    margin: 0 0 20px 20px;
  }
}
</style>





END.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975633.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

macOS通过钥匙串访问找回WiFi密码的详细教程

如果您忘记了Mac电脑上的WiFi密码&#xff0c;可以通过钥匙串访问来找回它。具体步骤如下&#xff1a; 1.打开Mac电脑的“启动台”&#xff0c;然后在其他文件中找到“钥匙串访问”。 2.运行“钥匙串访问”应用程序&#xff0c;点击左侧的“系统”&#xff0c;然后在右侧找到…

FT232RL国产替代芯片GP232RL无需软硬件修改资料

GP232RL是最新加入 ftdi 系列 usb 接口集成电路设备的设备。 GP232RL是一个 usb 到串行 uart 接口&#xff0c;带有可选的时钟发生器输出&#xff0c;以及新的 ftdichip-idTM 安全加密器特性。此外&#xff0c;还提供了异步和同步位崩接口模式。 通过将外部 eeprom、时钟电路和…

Android Studio更新新版本后无法创建flutter项目

最新更新了AndroidStudio版本&#xff0c;发现无法创建flutter项目。 dart和flutter插件确认都已安装&#xff0c;该有的环境配置都已配置。 最后与同事的插件作比较发现是Android APK Support这个插件没勾选。 勾选后&#xff0c;点击右下角的apply&#xff0c;重启AndroidS…

vue+elementUI el-select 自定义搜索逻辑(filter-method)

下拉列表的默认搜索是搜索label显示label,我司要求输入id显示label名称 <el-form-item label"部门&#xff1a;"><el-select v-model"form.region1" placeholder"请选择部门" filterable clearable:filter-method"dataFilter&qu…

手写apply方法

<script>/** 手写apply方法 * */Function.prototype.myApply function (context, args) {console.log(this, sss)//fnconst key Symbol()context[key] thiscontext[key](...args)delete context[key]return context[key]}const obj {name: zs,age: 18}function fn …

保姆级 C++ 学习路线

上周有小伙伴留言求安排一手C/C学习路线&#xff0c;这周一份保姆级的C语言安排上&#xff01; 以前就写过C语言的学习路线&#xff1a;可能是北半球最好的零基础C语言学习路线&#xff0c;这次把C的学习路线也安排上&#xff0c;专门花了一个多月写了这篇学习路线&#xff0c;…

风控引擎如何快速添加模型,并实时了解运行状态?

目录 风控模型的主要类型 风控引擎如何管理模型&#xff1f; 模型就是基于目标群体的大规模采样数据&#xff0c;挖掘出某个实际问题或客观事物的现象本质及运行规律&#xff0c;利用抽象的概念分析存在问题或风险&#xff0c;计算推演出减轻、防范问题或风险的对策过程&…

【MySql】数据库的CRUD(增删查改)

写在最前面的话 哈喽&#xff0c;宝子们&#xff0c;今天给大家带来的是MySql数据库的CRUD&#xff08;增删改查&#xff09;&#xff0c;CRUD是数据库非常基础的部分&#xff0c;也是后端开发日常工作中最主要的一项工作&#xff0c;接下来让我们一起进入学习吧&#xff0c;感…

如何指定this

<script>/*如何指定this的值可以通过2类方法指定1.调用时指定1.1call方法1.2apply方法2.创建时指定2.1bind方法2.2箭头函数*/// ------1.调用时指定------//1.1call方法:挨个传入参数//1.2apply方法:数组形式传入参数function foo (numA, numB) {console.log(this)consol…

10个最强大的AI驱动的3D建模工具【生成式AI】

推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 在快速发展的技术世界中&#xff0c;人工智能 (AI) 已经改变了游戏规则&#xff0c;尤其是在 3D 对象生成领域。 AI 驱动的 3D 对象生成器彻底改变了我们创建和可视化 3D 模型的方式&#xff0c;使该过程更加高效、准确且可…

【LarkDay】UE开发者沙龙活动回顾

文章目录 1、相关咨询2、录播链接3、演讲内容 1、相关咨询 「Paraverse平行云」邀您线上参与LarkDay UE 开发者沙龙 UE超硬核实战攻略&#xff5c;LarkDay UE开发者沙龙回顾&#xff08;文末有福利&#xff09; LarkDay UE 开发者沙龙问卷报告与获奖名单 2、录播链接 【Bil…

每日一题 501二叉搜素树中的众数(中序遍历)

题目 给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。 如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 BST 满足如下定义&a…

固定资产卡片乱怎么管理

固定资产卡片是记录公司固定资产信息的重要工具&#xff0c;如果管理不善&#xff0c;容易造成卡片混乱、数据错误等问题。 为了避免这种情况的发生&#xff0c;可以采取以下措施&#xff1a;  建立完善的资产管理制度&#xff0c;明确固定资产的分类、标准和使用情况&#x…

【vue】vuex持久化插件vuex-persistedstate:

文章目录 一、说明&#xff1a;二、手动利用HTML5的本地存储&#xff1a;三、利用vuex-persistedstate插件【1】安装【2】配置使用【3】存储sessionStorage的情况【4】存储cookie的情况【5】默认持久化所有state&#xff0c;指定需要持久化的state,配置如下【6】vuex引用多个插…

荣耀开发者沙龙 · 北京站 活动精彩回顾

聚梦想&#xff0c;创非凡&#xff0c;荣耀云业务开发者沙龙北京站顺利落幕。来自全国各地的开发者伙伴齐聚北京&#xff0c;共同探讨在应用分发、服务分发、内容分发上的新可能&#xff0c;探索云业务基础能力和荣耀MagicOS的奥秘&#xff0c;解码商业推广平台的增长潜力&…

手写Mybatis:第16章-解析含标签的动态SQL语句

文章目录 一、目标&#xff1a;动态SQL语句二、设计&#xff1a;动态SQL语句三、实现&#xff1a;动态SQL语句3.0 依赖修改3.1 工程结构3.2 动态SQL语句类图3.3 基本类型注册器3.4 Ognl表达式处理3.4.1 Ognl类解析器3.4.2 Ognl缓存3.4.3 表达式求值器 3.5 标签节点解析3.5.1 文…

智能电力运维系统

力安科技智能电力运维系统依托电易云-智慧电力物联网&#xff0c;利用“互联网”的思维模式&#xff0c;通过计算机网络、大数据、云计算、物联网等技术打造“智能电力运维云平台”&#xff0c;采用“线上监管线下维护”深度融合的方式&#xff0c;创新实现全方位主动运维&…

SpringBoot整合MQ

1.创建工程并引入依赖 <!-- 添加rocketmq的启动器--><dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.1.1</version></dependency>2.编写…

toFixed() 保留小数

let num item.value / total;item.rate parseFloat(num).toFixed(4) * 100 "%"; 不用parseFloat 有时会失真

使用java代码给Excel加水印,代码全,进阶版

以下代码&#xff0c;亲测可以跑通 1、上一篇博客用了Apache POI库3.8的版本的形式对Excel加了水印&#xff0c;但是最近主线版本用了4.1.2的形式&#xff0c;由于为了保持版本的兼容性&#xff0c;下面有开发了Apache POI的4.1.2的版本号的方案。 pom文件为&#xff1a; <d…