jquery - 键入动画文本

标签 jquery animation text typing

我有 DIV 标签,里面有文本。是否可以在具有打字效果的循环中更改文本内容,在其中键入,然后向后删除字母并从新文本开始?这可以用 jquery 实现吗?

最佳答案

一个简单的方法:

const elsTyper = document.querySelectorAll("[data-typer]");
const rand = (min, max) => Math.floor(Math.random() * (max - min + 1) + min);

const typer = (el) => {
  const text = el.dataset.typer;
  const tot = text.length;
  let ch = 0;

  (function typeIt() {
    if (ch > tot) return;
    el.textContent = text.substring(0, ch++);
    setTimeout(typeIt, rand(60, 300));
  }());
};

elsTyper.forEach(typer);
/* PULSATING CARET */
[data-typer]:after {
  content:"";
  display: inline-block;
  vertical-align: middle;
  width:1px;
  height:1em;
  background: #000;
  animation: caretPulsate 1s linear infinite; 
}
@keyframes caretPulsate {
  0%   {opacity:1;}
  50%  {opacity:1;}
  60%  {opacity:0;}
  100% {opacity:0;}
}
<span data-typer="Hi! My name is Al. I will guide you trough the Setup process."></span>
<h3 data-typer="This is another typing animated text"></h3>

因此,基本上获取元素的 data-typer 字符串,使用随机的 min-max 超时逐个字符插入。对于同一个 SPAN 的 CSS3 动画 :after 伪元素来说,脉动的“插入符号”毫无意义。

另请参阅:Generate random number between two numbers in JavaScript

关于jquery - 键入动画文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014066/

相关文章:

jquery - 如何在JSP中使用Jquery获取DataTables的总行数

jQuery:preventDefault() 不适用于输入/单击事件?

c++ - 在 opengl 中动画由立方体制成的模型

java - 如何获取节点周围的文本?

python - 从文本文件读取时的 Unicode 编码

java - 我想将 html 表数据转换为 pdf 并使用 jquery 下载它,代码如下

javascript - Web 应用程序中的打印机交互使用 javascript、jquery

android:动画可绘制对象被裁剪,边界未调整大小

android - 添加 fragment 时从汉堡包到箭头图标的过渡动画

javascript - 如何在书写时删除/trim 空格或制表符?