使用CSS和JavaScript的自我输入文本效果

使用CSS和JavaScript的自我输入文本效果

自我输入文本效果 是一种效果,其中文本的所有字母依次逐个显示,给人一种自己在屏幕上输入的感觉。即使这是一个基本的文本效果,它仍然是吸引人和有效的动画。这种动画广泛应用于所有现代Web应用程序中,非常容易实现。这可以只使用 CSS 或只使用 JavaScript 设计和实现,开发人员可以根据自己的创意修改此动画。例如,我们可以增加或减少文本显示的速度,甚至在文本末尾添加一个闪烁的光标来增强动画效果。

在本教程中,我们将使用 HTMLCSSJavaScript 实现自我输入文本效果。我们假设您熟悉HTML和CSS规则,并具有基本的CSS动画知识。

步骤1: 使用 npm 安装 Browsersync 。我们将使用Browsersync启动服务器,并提供一个URL来查看HTML网站、CSS动画以及加载相应的JavaScript文件。我们将全局安装Browsersync。

npm install -g browser-sync

步骤2: 在你的项目根文件夹中创建一个“index.html”文件、一个index.css文件和一个index.js文件。

HTML: 将以下代码片段添加到该文件中。该文件包含了包含在其中的CSS和JavaScript文件的代码。

CSS : overflow: hidden; CSS属性指定了内容如果溢出HTML元素的默认框的行为。由于我们指定了hidden,内容将被剪切并对用户不可见。这很重要,因为我们希望在动画完成之前不会透露文本。

white-space: nowrap; CSS属性指定了文本内容中空白字符的行为。如果存在一连串的空白字符,它们将折叠为一个空格,并且内容永远不会换行,直到遇到br HTML标签。这对于保持CSS动画的完整性非常重要。

margin: 0 auto; CSS属性仅仅是在文本被透露时扩展了边距,以支持打字效果。请参考代码注释以更好地理解。我们使用包围整个CSS动画的额外wrapper类,使用display: flex;和justify-content: center; CSS属性将其居中对齐到屏幕。CSS动画将在网站加载时触发。我们使用简单的CSS动画来实现打字效果,如下所示。详细说明可在此处找到。steps(30, end)是一个CSS动画的定时函数。第一个参数指定了函数中的间隔数,它应该是一个大于0的正整数。第二个参数是一个可选参数,值被设置为end。

JavaScript: 在这个文件中,我们通过逐步增加的index值,使用charAt()和setTimeout() JavaScript函数,手动将每个字母追加到HTML h1标签的#effect元素中。在setTimeout()函数中设置的间隔决定了文本被透露的速度,从而显示出自动打字效果。textEffect()函数通过Self Typing Text Effect的onClick HTML属性来触发,该属性与HTML & JS按钮一起使用。在我们的示例中,我们将间隔设置为50毫秒,但根据需要可以重新调整。

<!DOCTYPE html> 
<html lang="en"> 
  
<head> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content= 
        "width=device-width, initial-scale=1.0"> 
    <title>GeeksforGeeks</title> 
  
    <!-- Loading External index.css file -->
    <link rel="stylesheet" href="index.css"> 
</head> 
  
<body> 
    <h2> 
        GeeksforGeeks - Self Typing  
        Text Effect in CSS & JS 
    </h2> 
      
    <div class="wrapper"> 
        <div class="typewriter"> 
            <h1>Hello Geeks of GeeksforGeeks</h1> 
        </div> 
    </div> 
    <button class="btn btn-lg" onclick="textEffect()"> 
        Self Typing Text Effect using HTML & JS 
    </button> 
    <h1 id="effect"></h1> 
    <!-- Loading External index.js file -->
    <script src="index.js"></script> 
</body> 
  
</html> 

CSS代码

.wrapper { 
  
    /* Keeping the Text in the  
       center of the Screen */
    display: flex; 
    justify-content: center; 
} 
  
.typewriter h1 { 
    /* Content is not revealed  
       until the animation */
    overflow: hidden; 
  
    /* Keeps the content on a single line */
    white-space: nowrap; 
  
    /* Gives that scrolling effect  
       as the typing happens */
    margin: 0 auto; 
  
    /* Typing Effect Animation */
    animation: typing 3.5s steps(30, end) 
} 
  
/* Typing Effect on Website Loading */
@keyframes typing { 
    from { 
        width: 0
    } 
    to { 
        width: 100%
    } 
}

JavaScript代码

var index = 0; 
var text = 'Hello Geeks of GeeksforGeeks'; 
var speed = 50; 
  
function textEffect() { 
    if (index < text.length) { 
        document.getElementById("effect") 
                .innerHTML += text.charAt(index); 
        index++; 
        setTimeout(textEffect, speed); 
    } 
}

步骤3: 此时我们的 自动打字文本效果 已经准备好了。要使用Browsersync启动应用程序,请在项目目录中运行以下命令,或直接在浏览器中运行HTML文件。

browser-sync start --server --files "*"

输出: 这将在服务器模式下启动Browsersync,并根据通配符指定的目录监视所有文件的更改。默认情况下,应用程序将在 http://localhost:3000/ 上启动。

使用CSS和JavaScript的自我输入文本效果

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程