0

0

使用 KUTE.js 实现高效文本动画:第 4 部分,文本动画

王林

王林

发布时间:2023-08-28 18:05:11

|

768人浏览过

|

来源于php中文网

原创

使用 kute.js 实现高效文本动画:第 4 部分,文本动画

在本系列的第二个教程中,您学习了如何使用 KUTE.js 为网页上元素的不同 CSS 属性设置动画。您学习了如何为所有变换属性以及 border-radiusborder-color 等属性设置动画。您还可以使用 CSS 插件对 CSS 属性进行动画处理,例如 font-sizeline-heightletter-spacing字间距

KUTE.js 还有一个文本插件,允许您通过增加或减少倒计时等数字或逐字符写入字符串来为不同元素内的文本设置动画。

在本教程中,您将学习如何使用 KUTE.js 中的 CSS 和文本插件为网页上不同元素内的文本设置动画。

动画 CSS 文本属性

正如我之前提到的,您可以使用 KUTE.js CSS 插件为四个不同的与文本相关的 CSS 属性设置动画。这些属性是 font-sizeline-heightletter-spacingword-spacing。我们还将使用第一个教程中讨论的核心引擎的一些属性来为单个字母设置动画。让我们看看如何在下面的演示中结合使用所有这些概念来创建振动 HELLO 文本。

以下是用于创建上述动画的代码:

var theLetters = document.querySelectorAll("span");
var h = document.querySelector(".h");
var e = document.querySelector(".e");
var la = document.querySelector(".la");
var lb = document.querySelector(".lb");
var o = document.querySelector(".o");
var startButton = document.querySelector(".start");

var animateColor = KUTE.allFromTo(
  theLetters,
  { color: 'white' },
  { color: 'red' },
  { offset: 200, duration: 50}
);

var animateFontSize = KUTE.allFromTo(
  theLetters,
  { fontSize: '2em' },
  { fontSize: '4em' },
  { offset: 100, duration: 200, repeat: 10, yoyo: true}
);

var animateSkewing = KUTE.allTo(
  theLetters,
  { skewX: -15},
  { offset: 200, duration: 200 }
);

var animateH = KUTE.to(
  h,
  { color: '#009688' }
);

var animateE = KUTE.to(
  e,
  { translateY: -40, color: '#E91E63' }
);

var animateLA = KUTE.to(
  la,
  { color: '#8BC34A' }
);

var animateLB = KUTE.to(
  lb,
  { translateY: 20, color: '#FFC107' }
);

var animateO = KUTE.to(
  o,
  { color: '#FF5722' }
);

var lettersSqueezed = KUTE.allTo(
  theLetters,
  { letterSpacing: '-15px' },
  { offset: 0, duration: 200 }
);

animateColor.chain(animateFontSize);
animateFontSize.chain(animateSkewing);
animateSkewing.chain(animateH, animateE, animateLA, animateLB, animateO);
animateE.chain(lettersSqueezed);

startButton.addEventListener(
  "click",
  function() {
    animateColor.start();
  },
  false
);

单词的每个字母都包含在 span 标记内,并具有自己独特的类。第一个补间动画将所有字母的颜色从白色变为红色,偏移量为 200 毫秒。这也是点击开始动画后播放的第一个动画。 animateFontSize 补间已链接到 animateColor。这样,一旦彩色动画结束,font-size 动画就会开始。

您可能已经注意到,我使用了两个名为 repeatyoyo 的属性来控制动画的行为。 yoyo 属性用于反转当前正在重复播放的动画。这样可以避免动画过程中不同属性的值突然跳跃,使其显得平滑。

font-size 动画已与 animateSkewing 链接,它将所有字母倾斜 -15 度。 skewXskewY 属性在核心引擎本身中可用。

所有用于对不同字母的颜色进行动画处理的补间已立即链接到 animateSkewing。这样,您可以确保倾斜动画结束后所有链接的颜色动画都开始播放。最后,lettersSqueezed 补间将不同字母之间的间距减少 15 px。

您可以通过使用不同的属性组合来创建更有趣的效果。

动画数字

您还可以在 KUTE.js 中对数字进行动画处理。但是,您必须包含额外的文本插件才能创建动画。

数字动画的过程实际上非常简单。您只需指定应显示动画编号的选择器以及动画应结束的最终编号。

这是一个基本示例,使用动画显示 2016 年美国机场的总数。

var usa = document.querySelector(".usa");
var startButton = document.querySelector(".start");

var animateUSA = KUTE.to(
  usa,
  { number: 19536 }
);

startButton.addEventListener(
  "click",
  function() {
    animateUSA.start();
  },
  false
);

您还可以应用常用的补间选项,例如 durationrepeatdelay 来自定义动画的行为。我们刚刚编写的代码将产生以下动画:

逐字符书写文本

这是一种非常流行的效果,您可以在很多网站上找到它。 KUTE.js 文本插件允许您指定新句子,一次替换一个字符的原始句子。

在用最终值替换初始字符之前,随机字符会像您刚刚看到的数字示例一样进行动画处理。嵌入式 CodePen 演示应该会更清楚:

以下是创建上述动画所需编写的代码:

var animateHeading = KUTE.to(
  heading,
  { text: '70% Surface of Earth is Covered with Water.' },
  { duration: 5000}
);

startButton.addEventListener(
  "click",
  function() {
    animateHeading.start();
  },
  false
);

整个句子的人物动画在5秒内完成。您可能已经注意到,首句和末句不需要具有相同数量的字符。这给我们在设置 text 参数的值时提供了很大的自由度。

您还可以在 text 参数的值中包含 HTML 标记,然后使用 CSS 更改刚刚设置动画的文本的外观。

var animateHeading = KUTE.to(
  heading,
  { text: '70% SURFACE OF EARTH IS COVERED WITH WATER.' },
  { duration: 10000, textChars: 'upper' }
);

地球出现后,地球的出现将会延迟。发生这种情况是因为插件还使用相同的角色动画编写 ,但这些角色实际上对用户来说都不可见。根据您的喜好,延迟可能是理想的,也可能是不理想的。

动画期间显示的中间字符默认为小写字母值。当您想要设置动画的字符均为大写字母或数字时,这可能会成为问题。动画使用哪些中间字符由 textChars 参数的值决定。它接受六个不同的值:

  • alpha:在这种情况下,中间字符将为小写字母。
  • upper:在这种情况下,中间字符将为大写字母。
  • numeric:在这种情况下,数字字符用于动画。这与对数字进行动画处理不同,因为值不会按顺序增加。
  • symbols:在这种情况下,插件将使用 #、% 和 $ 等字符来表示动画。
  • all:如果您希望中间字符是字母、数字和符号的混合,则可以使用此值。
  • 如果没有其他方法适合您,KUTE.js 可以让您选择指定动画期间应使用的自定义字符列表。

以下示例演示如何使用大写中间字符为标题内的文本添加动画效果。

最终想法

在本教程中,您学习了如何使用 KUTE.js 中的 CSS 和文本插件来为元素内的文本添加动画效果。当你想要为文本的外观添加动画效果时,你需要使用 CSS 插件。这将允许您使用 font-sizeletter-spacing 等属性。当您想要更改任何元素内的实际字符时,您需要使用文本插件。

如果您正在寻找其他 JavaScript 资源来学习或在工作中使用,请查看我们在 Envato Market 上提供的资源。

我希望您在本教程中学到了一些新东西。如果您有任何疑问,请在评论中告诉我。

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

相关专题

更多
Golang gRPC 服务开发与Protobuf实战
Golang gRPC 服务开发与Protobuf实战

本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。

8

2026.01.15

公务员递补名单公布时间 公务员递补要求
公务员递补名单公布时间 公务员递补要求

公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。

44

2026.01.15

公务员调剂条件 2026调剂公告时间
公务员调剂条件 2026调剂公告时间

(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。

58

2026.01.15

国考成绩查询入口 国考分数公布时间2026
国考成绩查询入口 国考分数公布时间2026

笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。

11

2026.01.15

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

65

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

36

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

75

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

21

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

35

2026.01.13

热门下载

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

精品课程

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

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