【前端三分钟】利用Javascript实现打字效果

本文介绍了一个简单的HTML和JavaScript实现的打字效果动画。通过逐步显示字符并在末尾添加光标来模仿真实的打字过程,同时包含光标的闪烁效果。代码中使用了setTimeout函数来控制字符的逐个显示和光标的闪烁频率。

在这里插入图片描述
效果如图:
在这里插入图片描述
实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="text">

</div>
</body>
<script>
  let divTyping = document.getElementById('text')
  let i = 0,
      timer = 0,
      str = 'hello world\n你好世界'

  function typing () {
    if (i <= str.length) {
      let char = str.slice(0, i++);
      divTyping.innerHTML = '<span class="word">'+str.slice(0, i++)+'</span>'+ '<span class="cursor">|</span>';
      timer = setTimeout('typing()', 200)
    }
  }
  function disappear() {
    let cursor = document.querySelector('.cursor');
    cursor.innerHTML = '';
    setTimeout(appear,200);
  }
  function appear() {
    let cursor = document.querySelector('.cursor');
    cursor.innerHTML = '|';
    setTimeout(disappear,200);
  }

  typing();
  disappear();
</script>
</html>

以下是利用51单片机实现数码管倒计时的代码: ```c #include<reg52.h> #define uchar unsigned char #define uint unsigned int uchar code table[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f }; // 数码管显示0-9的编码表 void delay(uint i) // 延时函数 { while (i--); } void main() { uchar minute = 3, second = 0; // 初始化倒计时的时间 while (1) { P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[minute / 10]; // 显示分钟的十位 P2 = 0x01; // 打开数码管,显示分钟的十位 delay(1000); // 延时1秒 P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[minute % 10]; // 显示分钟的个位 P2 = 0x02; // 打开数码管,显示分钟的个位 delay(1000); // 延时1秒 P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[second / 10]; // 显示秒钟的十位 P2 = 0x04; // 打开数码管,显示秒钟的十位 delay(1000); // 延时1秒 P2 = 0x00; // 关闭数码管,准备显示下一个数字 P0 = table[second % 10]; // 显示秒钟的个位 P2 = 0x08; // 打开数码管,显示秒钟的个位 delay(1000); // 延时1秒 if (--second == 0xff) // 秒钟减1,如果减到0,则分钟减1 { second = 59; if (--minute == 0xff) // 分钟减1,如果减到0,则倒计时结束 { break; } } } while (1); // 倒计时结束,停在这里 } ``` 需要注意的是,本代码中的延时函数是通过循环实现的,因此可能会有一定的误差。如果需要更精确的延时,可以使用定时器。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蟹蟹蟹风流

期望和你分享一杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值