教你如何实现一个页面自动打字效果

文章介绍了如何使用UnoCSS创建光标闪烁效果,通过动态切换div的border实现。同时,详细阐述了自动打字效果的实现,通过在div前插入文字模拟打字过程,利用循环定时器控制文字插入。作者还预告将分享WindowsUI的拖拽功能实现。
摘要由CSDN通过智能技术生成

前言: 最近在写一个类似于 windows 启动页的项目,不知道大家是否还记的 windows 很经典的小光标加载页面,我又稍微改造了一下效果如下:

loading.gif


一. 光标闪烁效果的实现

tips: 在这里我们使用了 UnoCSS,如果你不清楚 UnoCSS 的使用方法,那你可以点击下面这篇文章。
🫱 🎁手把手教你创建自己的代码仓库

  1. 首先准备一块黑色的背景。
    image.png

  2. 其实光标的样式非常非常简单,仅仅只需要你创建一个宽高合适的 div,然后创建一个底部的 border 效果即可。
    image.png
    下面应该是你目前的效果。
    image.png

  3. 现在需要清楚的知道,这个白块的展示其实就是我们控制展示这个 divborder 的显示还是隐藏。那么现在我们的思路就很清晰了,所以这里我们只需要写一个变量来动态的切换这个 border 值即可。
    image.png

  4. 现在你的页面效果应该是漆黑一片,那交给谁来动态的切换这个状态呢?这里其实很简单,当页面挂载的时候,我们只需要开启一个定时器来动态切换即可。
    image.png
    这时候我们其实就能看到一丢丢效果了:
    flash.gif

二. 自动打字效果的实现

  1. 首先我们应该明确一个概念,我们目前要做的事很简单,只需要在百块 div 的前面插入文字其实就是在向后推白块
    image.png
    image.png
    所以白块的移动是我们无需关心的,我们仅仅只需要去处理如何插入字体的问题。

  2. 这里我们先准备一个常量来书写一段字符串文字,然后还需要给准备放文字的 div 打上 ref 为后面的工作做准备,之后我们需要用到它身上相关的属性。
    image.png

  3. 接下来我们要编写一个函数去处理这个问题,名字起的就随意点吧,就叫做 autoPrint
    image.png

  4. 这里我们仍需要开启一个循环定时器去控制,因为我们无法得知文字具体有多少,不考虑使用 setTimeout
    image.png

  5. 还需要准备两个变量,来存放接下来我们要处理的文字信息。
    image.png

  6. 下面代码的思路就比较简单了,其实就是调用了 substring 方法来一直切割获取下一个字符串的值。substring本身也是不改变原字符串的,所以我们只需要控制 index 就可以很轻松的获取到最后的值。
    image.png
    效果如下:
    3.gif

  7. 最后别忘了在合适的时机清除这个定时器。
    image.png

预告

最近在实现一个 window 的全套 UI ,PC 和移动端的效果是完全自适应的,两者有两套 UI
4.gif
我会在本周更新拖拽这个经典面试题的实现,仍会使用费曼学习法通俗易懂的讲解。如果你有兴趣,不妨保持关注。🎁

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值