📜  javascript 打字机效果从左到右 - CSS (1)

📅  最后修改于: 2023-12-03 14:42:34.154000             🧑  作者: Mango

JavaScript 打字机效果从左到右 - CSS

介绍

在这篇文章中,我们将学习如何使用 CSS 和 JavaScript 来创建一个打字机效果从左到右的动画。这一技术可以为你的网站或应用程序增加动态效果,吸引用户眼球,同时也可以提高用户体验。

效果展示

在开始讲解具体实现方法之前,先看一下我们将要实现的效果:

点击查看效果展示

实现方法
  1. 首先,我们需要创建一个 HTML 元素来显示我们的文本。可以是一个 <p><span> 等等。比如:
<p id="text">这是一段文本。</p>
  1. 接下来,我们需要使用 CSS 来定义文本的样式。我们需要将文本的可见性设置为隐藏,通过 JavaScript 来控制其显示。同时,我们还需要为文本添加一个动画效果,使它从左到右逐渐显示。CSS 代码示例如下:
#text {
  visibility: hidden;
  animation: type 2s steps(25), blink-caret 1s step-end infinite;
}

@keyframes type {
  from { width: 0; }
}

@keyframes blink-caret {
  from, to { border-color: transparent; }
  50% { border-color: orange; }
}
  1. 现在,我们需要使用 JavaScript 来控制文本的显示效果。我们需要使用一个计时器来控制文本的显示,同时使用一个变量来记录当前文本的长度。控制器的代码如下:
var i = 0;
var txt = '这是一段文本。'; /* 你需要替换成你自己的文本 */
var speed = 50; /* 控制打字的速度,单位是毫秒 */

function typeWriter() {
    if (i < txt.length) {
        document.getElementById("text").innerHTML += txt.charAt(i);
        i++;
        setTimeout(typeWriter, speed);
    }
}

以上的代码中,变量 i 用于记录当前文本的长度。变量 txt 是存储文本的字符串,你可以将其替换为你自己的文本。变量 speed 用于控制打字的速度,单位是毫秒。函数 typeWriter 通过 setTimeout 来控制打字的速度,并将每个字符添加到文本元素中。最后,我们需要在页面加载时调用这个函数。

  1. 在页面加载时调用 typeWriter 函数。我们可以使用 window.onload 或者直接将脚本放在页面底部来实现。脚本示例如下:
window.onload = function() {
  typeWriter();
};
  1. 最终 HTML 代码:
<!DOCTYPE html>
<html>
  <head>
    <title>打字机效果从左到右</title>
    <style>
      #text {
        visibility: hidden;
        animation: type 2s steps(25), blink-caret 1s step-end infinite;
      }

      @keyframes type {
        from {
          width: 0;
        }
      }

      @keyframes blink-caret {
        from,
        to {
          border-color: transparent;
        }
        50% {
          border-color: orange;
        }
      }
    </style>
  </head>
  <body>
    <p id="text"></p>
    <script>
      var i = 0;
      var txt = "这是一段文本。"; /* 你需要替换成你自己的文本 */
      var speed = 50; /* 控制打字的速度,单位是毫秒 */

      function typeWriter() {
        if (i < txt.length) {
          document.getElementById("text").innerHTML += txt.charAt(i);
          i++;
          setTimeout(typeWriter, speed);
        }
      }

      window.onload = function() {
        typeWriter();
      };
    </script>
  </body>
</html>
结论

通过上述步骤,我们成功实现了一个打字机效果从左到右的动画。现在你可以把这个漂亮的效果用在你的网站或应用程序中,吸引用户眼球,提高用户体验!