前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【demo50】标题打字输入

【demo50】标题打字输入

作者头像
客怎眠qvq
发布2022-11-01 16:25:44
3770
发布2022-11-01 16:25:44
举报
文章被收录于专栏:某菜鸟の小屋

📢前言

代码取自开源项目50projects50days,用作个人学习和巩固三件套的知识,增加了注释,可能会有小改动。

在线演示地址

📝实现思路及效果

💻代码

index.html

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="style.css">
  <title>标题打字输入</title>
  <link rel="shortcut icon" href="../logo.svg">
</head>

<body>
  <!-- 开始文字 -->
  <h1 id="text"></h1>
  <!-- 控制文字输入动画的速度 -->
  <div>
    <label for="speed">Speed:</label>
    <!-- 设置数字上下限 及 每次增加的大小(步长) -->
    <input type="number" name="speed" id="speed" value="1" min="1" max="10" step="1">
  </div>

  <script src="script.js"></script>
</body>

</html>

style.css

代码语言:javascript
复制
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');

* {
  box-sizing: border-box;
}

/* 設置背景色 设置body内的元素水平、垂直对齐 */
body {
  background-color: darksalmon;
  font-family: 'Roboto', sans-serif;
  display: flex;
  font-display: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
  overflow: hidden;
  margin: 0;
}

/* 设置显示控制速度 的盒子样式 */
div {
  position: absolute;
  bottom: 20px;
  /* 背景类似蒙版遮罩 */
  background-color: rgba(0, 0, 0, 0.1);
  padding: 10px 20px;
  font-size: 18x;
}

/* 设置速度输入框的样式 */
input {
  width: 50px;
  font-size: 18px;
  padding: 5px;
  text-align: center;
  background-color: darksalmon;
  border: 0;
}

input:focus {
  outline: none;
}

script.js

代码语言:javascript
复制
const textEl = document.getElementById("text");
const speedEl = document.getElementById("speed");
const text = "原来你也玩原神!";
let idx = 1;
// 控制速度
let speed = 300 / speedEl.value;

writeText();

function writeText() {
  // 将标题文字切片 每次显示的长度增加1
  textEl.innerText = text.slice(0, idx);

  idx++;

  // 当写入text的索引值 大于 text的长度时 初始化idx为1
  if (idx > text.length) {
    idx = 1;
  }

  setTimeout(writeText, speed);
}

speedEl.addEventListener("input", (e) => {
  speed = 300 / e.target.value;
});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 📢前言
  • 📝实现思路及效果
  • 💻代码
    • index.html
      • style.css
        • script.js
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档