0

0

实现页面加载时随机显示并逐字打字的引述效果

心靈之曲

心靈之曲

发布时间:2026-02-10 10:28:37

|

278人浏览过

|

来源于php中文网

原创

实现页面加载时随机显示并逐字打字的引述效果

本文详解如何在网页加载过程中,从预设语句池中随机选取一条文本,并以打字机(typewriter)效果动态逐字呈现于加载遮罩层中,全程无需第三方库,纯原生 javascript 实现。

在构建现代 Web 加载体验时,静态“Loading…”提示已显单调。为提升用户感知流畅度与品牌调性,越来越多项目采用动态随机引述 + 打字机动画作为加载过渡——既缓解等待焦虑,又强化视觉记忆。本文提供一套轻量、可靠、可即插即用的实现方案,兼容 jQuery(如需),亦可轻松迁移至原生 DOM 操作。

✅ 核心逻辑解析

关键问题在于:原始代码中 txt 被错误赋值为整个 quotes 数组,导致 txt.charAt(i) 报错(数组无 charAt 方法)。正确做法是——先随机选句,再对单条字符串执行逐字渲染

以下是优化后的完整 JavaScript 实现(兼容您现有 HTML 与 CSS):

$(document).ready(function () {
    const quotes = [
        "Loading sweet video's...",
        "Loading... One pixel at a time...",
        "Lights, camera, action...",
        "Framing imagination, crafting reality..."
    ];

    // 1. 随机选取一句
    const randQuote = quotes[Math.floor(Math.random() * quotes.length)];

    // 2. 在 #element 内创建空 

元素(避免重复追加) $('#element').empty().text(''); // 更安全的清空方式 // 3. 定义打字函数 let i = 0; const speed = 50; // 毫秒/字符,可按需调整节奏 function typeWriter() { if (i < randQuote.length) { $('#element').text(randQuote.substring(0, i + 1)); // 使用 text() 避免 XSS 风险 i++; setTimeout(typeWriter, speed); } } // 4. 立即启动打字动画 typeWriter(); });

? 为什么用 .text() 而非 .html() 或 innerHTML?text() 自动转义 HTML 字符(如 ),防止因引述内容含特殊符号引发 DOM 解析异常或潜在 XSS 风险;若引述中确需内联样式(极少见),请改用 html() 并确保内容可信。

? 与加载流程无缝协同

您的 CSS 已通过 transition-delay 控制各元素淡出时机,JavaScript 侧只需确保打字在 .loader-random-quote 可见前完成初始化。当前 $(document).ready() 触发时机合理(DOM 就绪后立即开始打字),而最终 window.load 后的遮罩移除逻辑保持不变,二者天然解耦。

标贝科技
标贝科技

标贝科技-专业AI语音服务的人工智能开放平台

下载

补充建议:为增强健壮性,可在 typeWriter 结束后添加回调,例如:

if (i >= randQuote.length) {
    // 可选:打字完成后添加微交互,如光标闪烁暂停 800ms 再触发隐藏
    setTimeout(() => {
        $('.loader-random-quote').addClass('typing-complete');
    }, 800);
}

对应 CSS 可添加:

.loader-random-quote.typing-complete::after {
    content: "|";
    animation: blink 1s infinite;
}
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }

⚠️ 注意事项与最佳实践

  • 性能友好:本方案使用 setTimeout 而非 setInterval,避免定时器堆积;字符级操作开销极低,适用于任意长度引述(建议 ≤ 60 字以保障加载体验)。
  • 响应式适配:.loader-random-quote 的 font-size: 2em 在移动端可能过大,推荐改用 clamp() 或媒体查询优化:
    font-size: clamp(1rem, 2.5vw, 2rem);
  • 无障碍支持:为屏幕阅读器用户提供语义化支持,可在

    上添加 aria-live="polite",使其在内容更新时自动播报。

  • 扩展性提示:如需从 API 动态获取引述,将 quotes 替换为 fetch() Promise 链即可,注意在 then() 中调用 typeWriter。

至此,您已拥有一套简洁、稳定、专业级的加载期打字机引述系统——无需依赖 Typed.js 等外部库,零构建配置,开箱即用。每一次页面刷新,都是一次独一无二的视觉问候。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
jquery插件有哪些
jquery插件有哪些

jquery插件有jQuery UI、jQuery Validate、jQuery DataTables、jQuery Slick、jQuery LazyLoad、jQuery Countdown、jQuery Lightbox、jQuery FullCalendar、jQuery Chosen和jQuery EasyUI等。本专题为大家提供jquery插件相关的文章、下载、课程内容,供大家免费下载体验。

152

2023.09.12

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

317

2023.10.13

jquery删除元素的方法
jquery删除元素的方法

jquery可以通过.remove() 方法、 .detach() 方法、.empty() 方法、.unwrap() 方法、.replaceWith() 方法、.html('') 方法和.hide() 方法来删除元素。更多关于jquery相关的问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

402

2023.11.10

jQuery hover()方法的使用
jQuery hover()方法的使用

hover()是jQuery中一个常用的方法,它用于绑定两个事件处理函数,这两个函数将在鼠标指针进入和离开匹配的元素时执行。想了解更多hover()的相关内容,可以阅读本专题下面的文章。

508

2023.12.04

jquery实现分页方法
jquery实现分页方法

在jQuery中实现分页可以使用插件或者自定义实现。想了解更多jquery分页的相关内容,可以阅读本专题下面的文章。

229

2023.12.06

jquery中隐藏元素是什么
jquery中隐藏元素是什么

jquery中隐藏元素是非常重要的一个概念,在使用jquery隐藏元素之前,需要先了解css样式中关于元素隐藏的属性,比如display、visibility、opacity等属性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

123

2024.02.23

jquery中什么是高亮显示
jquery中什么是高亮显示

jquery中高亮显示是指对页面搜索关键词时进行高亮显示,其实现办法:1、先获取要高亮显示的行,获取搜索的内容,再遍历整行内容,最后添加高亮颜色;2、使用“jquery highlight”高亮插件。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2024.02.23

jQuery 正则表达式相关教程
jQuery 正则表达式相关教程

本专题整合了jQuery正则表达式相关教程大全,阅读专题下面的文章了解更多详细内容。

48

2026.01.13

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

153

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号