Rumah > Tutorial CMS > WordTekan > teks badan

Animasi teks yang cekap dengan KUTE.js: Bahagian 4, Animasi teks

王林
Lepaskan: 2023-08-28 18:05:11
asal
620 orang telah melayarinya

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

Dalam tutorial kedua dalam siri ini, anda mempelajari cara menggunakan KUTE.js untuk menganimasikan sifat CSS yang berbeza bagi elemen pada halaman web. Anda mempelajari cara menghidupkan semua sifat mengubah, serta sifat seperti border-radius dan border-color. Anda juga boleh menggunakan pemalam CSS untuk menghidupkan sifat CSS seperti font-size, line-height, jarak-huruf dan jarak-huruf. 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
);
Salin selepas log masuk

单词的每个字母都包含在 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
);
Salin selepas log masuk

您还可以应用常用的补间选项,例如 durationrepeatdelay

KUTE.js juga mempunyai pemalam teks yang membolehkan anda menghidupkan teks dalam elemen yang berbeza dengan menambah atau mengurangkan nombor seperti kira detik atau menulis rentetan aksara mengikut aksara.

Sifat teks CSS animasi

Seperti yang saya nyatakan sebelum ini, anda boleh menghidupkan empat sifat CSS berkaitan teks berbeza menggunakan pemalam CSS KUTE.js. Sifat ini ialah font-size, line-height, huruf-spacing dan jarak perkataan. Kami juga akan menghidupkan huruf individu menggunakan beberapa sifat enjin teras yang dibincangkan dalam tutorial pertama. Mari lihat bagaimana semua konsep ini boleh digunakan bersama untuk mencipta teksHELLOgetar dalam demo di bawah.

Setiap huruf perkataan terkandung dalam teg span dan mempunyai kelas tersendiri. Animasi tween pertama menukar warna semua huruf daripada putih kepada merah dengan offset 200 milisaat. Ini juga merupakan animasi pertama yang dimainkan selepas mengklik Mulakan Animasi. animateFontSize tween dipautkan kepada animateColor. Dengan cara ini, sebaik sahaja animasi warna tamat, animasi font-size bermula.

Anda mungkin perasan bahawa saya menggunakan dua sifat bernama repeat dan yoyo untuk mengawal Gelagat animasi. Atribut yoyo digunakan untuk membalikkan animasi yang sedang berulang. Ini mengelakkan lonjakan mendadak dalam nilai sifat yang berbeza semasa animasi, menjadikannya kelihatan lancar.

#🎜🎜# Animasi font-size dipautkan dengan animateSkewing, yang mencondongkan semua huruf -15 darjah. Sifat skewX dan skewY tersedia dalam enjin teras itu sendiri. #🎜🎜# #🎜🎜#Semua tweens yang digunakan untuk menghidupkan warna huruf yang berbeza kini dipautkan kepada animateSkewing. Dengan cara ini anda memastikan bahawa semua animasi warna yang dipautkan mula dimainkan selepas animasi condong tamat. Akhir sekali, tweener lettersSqueezed mengurangkan jarak antara huruf yang berbeza sebanyak 15 px. #🎜🎜# #🎜🎜#Anda boleh mencipta kesan yang lebih menarik dengan menggunakan gabungan sifat yang berbeza. #🎜🎜# #🎜🎜#nombor animasi#🎜🎜# #🎜🎜#Anda juga boleh menghidupkan nombor dalam KUTE.js. Walau bagaimanapun, anda mesti memasukkan pemalam teks tambahan untuk mencipta animasi. #🎜🎜# #🎜🎜#Proses animasi digital sebenarnya sangat mudah. Anda hanya perlu menentukan pemilih di mana nombor animasi harus dipaparkan dan nombor akhir di mana animasi itu akan tamat. #🎜🎜# #🎜🎜#Ini ialah contoh asas menggunakan animasi untuk menunjukkan jumlah bilangan lapangan terbang A.S. pada tahun 2016. #🎜🎜#
var animateHeading = KUTE.to(
  heading,
  { text: '70% SURFACE OF <span class="earth">EARTH</span> IS COVERED WITH <span class="water">WATER</span>.' },
  { duration: 10000, textChars: 'upper' }
);
Salin selepas log masuk
Salin selepas log masuk
#🎜🎜#Anda juga boleh menggunakan pilihan tweening biasa seperti tempoh, repeat dan delay untuk menyesuaikan tingkah laku animasi. Kod yang baru kami tulis akan menghasilkan animasi berikut: #🎜🎜# #🎜🎜##🎜🎜##🎜🎜##🎜🎜# #🎜🎜#Tulis teks aksara demi aksara#🎜🎜# #🎜🎜# Ini adalah kesan yang sangat popular dan anda boleh menemuinya di banyak laman web. Pemalam teks KUTE.js membolehkan anda menentukan ayat baharu yang menggantikan ayat asal satu aksara pada satu masa. #🎜🎜# #🎜🎜#Watak rawak dianimasikan seperti contoh angka yang baru anda lihat, sebelum menggantikan aksara awal dengan nilai akhir. Demo CodePen yang dibenamkan seharusnya menjadikannya lebih jelas: #🎜🎜# #🎜🎜##🎜🎜##🎜🎜##🎜🎜# #🎜🎜#Berikut ialah kod yang anda perlu tulis untuk mencipta animasi di atas: #🎜🎜#
var animateHeading = KUTE.to(
  heading,
  { text: '70% Surface of Earth is Covered with Water.' },
  { duration: 5000}
);

startButton.addEventListener(
  "click",
  function() {
    animateHeading.start();
  },
  false
);
Salin selepas log masuk
Salin selepas log masuk

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

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

var animateHeading = KUTE.to(
  heading,
  { text: '70% SURFACE OF <span class="earth">EARTH</span> IS COVERED WITH <span class="water">WATER</span>.' },
  { duration: 10000, textChars: 'upper' }
);
Salin selepas log masuk
Salin selepas log masuk

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

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

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

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

最终想法

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

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

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

Atas ialah kandungan terperinci Animasi teks yang cekap dengan KUTE.js: Bahagian 4, Animasi teks. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!