返回顶部
首页 > 资讯 > 前端开发 > 其他 >详解怎么在前端里实现打字机插件
  • 618
分享到

详解怎么在前端里实现打字机插件

前端 2023-05-14 22:05:40 618人浏览 八月长安
摘要

本篇文章给大家带来了关于前端的相关知识,其中主要跟大家聊一聊前端是怎么实现打字机插件的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。前言前端实现打字机效果,在网上找到的通过修改dom节点的方式无法跨端使用,考虑到跨端问题作出兼容方案:

本篇文章给大家带来了关于前端的相关知识,其中主要跟大家聊一聊前端是怎么实现打字机插件的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。

详解怎么在前端里实现打字机插件

前言

前端实现打字机效果,在网上找到的通过修改dom节点的方式无法跨端使用,考虑到跨端问题作出兼容方案:使用回调函数,在每次打字变化的时候调用回调并且把更新后的字符串抛出,让用户自己去处理之后的渲染,这样就能够做到跨平台,在各个端都能够正常使用。

最简单的打字机

const dom = document.querySelector('.content')
const data = '最简单的打字效果代码'.split('')
let index = 0
function writing(index) {
    if (index < data.length) {
        dom.innerhtml += data[index]
        setTimeout(writing.bind(this), 200, ++index)
    }
}
writing(index)

最简单的打字机,简单的通过定时器实现了文字的增加,通过这个例子我们能够得到一个具体的实现思路,当然一些功能或者性能上的问题还需要不断地优化,但是我们可以以此作为基础来设计一款插件。

1. 新增向后删除动效

所以我们新增一个当前的打字状态

当 state 为 "typing" 的时候代表向前打字,相反为向后删除,

然后就是处理删除部分的逻辑,这部分的逻辑和向前新增是一样的,并且我们也要在删除到最后一个字符之后把状态改为 "typing"

2. 新增速度,向后删除速度可控

然后还可以自定义向前新增或者向后删除的速度,通过当前的状态来判断就可以

3. 输入文字可以为单个字符串也可以为字符串数组

并且支持传入一个字符串数组而不是单个的字符串,因为实际的需求可能是多个字符串之间一直轮换

首先单个字符的逻辑没什么好说的,字符串的数组的话,就需要新增一个index用于判断当前打字机进行到了哪一个字符串,

通过 changeTextIndex 这个函数,就可以不断地更新当前字符串,做到字符串数组循环播放的效果

4. 开启延迟

新增字符串开始和结束的延迟

用于控制每次打字结束之后,需要等待的时间

5. 停止打字

打字机运行的过长当中,由于底层是通过定时器实现的,那么就一定需要在不使用的时候将其关闭,避免造成性能的浪费,比方说在首页实例化了一个打字机,但是进入到别的页面的时候就不再需要这个打字机了,那么就需要将其停下。

通过在实例上绑定一个函数来停下当前打字机的进行,当调用的时候,会将下一个定时器赋值为 null,从而停下打字机的运行。

6. 使用 callback 回调解决小程序问题

上述的代码当中,我们都去修改了 dom 节点来实现打字机字符的改变,那么在小程序或者是其他不存在 dom 或者是 dom 修改的 api 不再是 innerhtml 的时候,插件就无法进行支持,所以对此进行兼容,显示通过 callBackText 来保存当前的字符串,然后在利用一个函数来决定,这个字符串的使用方式

在存在 callback 的情况下,优先将字符串通过 callback 回调出去,让业务拿到这个字符串并且自己去处理改变的逻辑,这样在哪都能够进行打字效果,并且不在依赖环境。

这里那我自己的 uniapp 项目做一个示例

image.png

image.png

效果:

动画1.gif

第三方 typed.js

大部分逻辑具体参考了 [typed.js]-javascript打字动画库

这里属于自定义了一款插件,支持的功能不如 typed.js 但是胜在更加轻量,并且可以自己定义更多自己需要的功能。

总结

在不考虑环境的情况下,最简单的打字机效果就是直接利用定时器在每隔一段时间后更新节点内容文字,在其基础上还可以做出扩展,更新出比较完善的打字机插件.

以上就是详解怎么在前端里实现打字机插件的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: 详解怎么在前端里实现打字机插件

本文链接: https://lsjlt.com/news/207134.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解怎么在前端里实现打字机插件
    本篇文章给大家带来了关于前端的相关知识,其中主要跟大家聊一聊前端是怎么实现打字机插件的,感兴趣的朋友下面一起来看一下吧,希望对大家有帮助。前言前端实现打字机效果,在网上找到的通过修改dom节点的方式无法跨端使用,考虑到跨端问题作出兼容方案:...
    99+
    2023-05-14
    前端
  • 如何在web前端里实现打字机插件
    这篇文章主要介绍了如何在web前端里实现打字机插件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何在web前端里实现打字机插件文章都会有所收获,下面我们一起来看看吧。最简单的打字机const dom = do...
    99+
    2023-07-05
  • js插件jsencrypt实现rsa前端加密php后台解密
    前端页面代码 传递到php后台的是公钥加密的数据 Document //公钥 PKCS8(JAVA适用) var PUBLIC_KEY = 'MIGfMA0GCSqG...
    99+
    2023-09-26
    前端 javascript 开发语言 php jquery
  • html5怎么实现打字机
    这篇“html5怎么实现打字机”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“html5怎么...
    99+
    2024-04-02
  • 前端实现打印功能的两种方法详解
    目录前言方法一:window.print()   方法二:利用iframe,iframe.contentWindow.print()补充:导出步骤总结:前言 前端...
    99+
    2023-01-06
    前端实现打印功能 前端打印语句 前端打印功能实现
  • 怎么在前端中实现一个打印图像功能
    本篇文章给大家分享的是有关怎么在前端中实现一个打印图像功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一.  尝试LODOP打印插件之前前端表单打印功能有使用过LO...
    99+
    2023-06-09
  • JS前端实现fsm有限状态机实例详解
    目录引言举个栗子从零开始获取状态状态改变transition实现fsm状态机实现钩子函数完整代码总结引言 我们平时开发时本质上就时对应用程序的各种状态进行切换并作出相应处理,最直接的...
    99+
    2024-04-02
  • 在Vue中怎么实现打字机的效果
    本篇内容介绍了“在Vue中怎么实现打字机的效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!最终效果I&lsquo;m ByPunk...
    99+
    2023-07-02
  • 基于Vue3实现前端埋点上报插件并打包发布到npm的详细过程
    目录项目环境搭建插件开发点击事件上报vue自定义指令手动上报方法页面访问次数上报(pv,uv)页面停留时间(TP)获取公共参数引入axios打包发布使用说明OptionOptions...
    99+
    2022-11-13
    Vue打包发布到npm Vue埋点上报插件打包发布到npm
  • 怎么在css3打包后自动追加前缀插件:autoprefixer
    小编给大家分享一下怎么在css3打包后自动追加前缀插件:autoprefixer ,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!用vue-cli构建的项目脚手架已...
    99+
    2023-06-08
  • vue前端路由机制怎么实现
    这篇文章主要讲解了“vue前端路由机制怎么实现”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue前端路由机制怎么实现”吧!一. 前端路由现代前端开发中最流行的页面模型,莫过于SPA单页应用...
    99+
    2023-07-04
  • Vue怎么用插件实现打印功能
    这篇文章主要介绍“Vue怎么用插件实现打印功能”,在日常操作中,相信很多人在Vue怎么用插件实现打印功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue怎么用插件实现打印功能”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • vue前端信息详情页怎么实现
    这篇“vue前端信息详情页怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue前端信息详情页怎么实现”文章吧。1.H...
    99+
    2023-06-30
  • Vue利用插件实现打印功能的示例详解
    目录安装 引入 使用 这里介绍一个插件(vue-print-nb),蛮好用的,用起来很方便,所以想记录一下  npm官方: https://w...
    99+
    2023-03-19
    Vue实现打印功能 Vue打印功能 Vue打印
  • 前端vue中怎么实现文件下载
    这篇文章主要介绍了前端vue中怎么实现文件下载的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇前端vue中怎么实现文件下载文章都会有所收获,下面我们一起来看看吧。第一种方式 前端创建超链接,通过a标签向...
    99+
    2023-07-06
  • Docker+Nginx打包部署前后端分离怎么实现
    这篇文章主要介绍“Docker+Nginx打包部署前后端分离怎么实现”,在日常操作中,相信很多人在Docker+Nginx打包部署前后端分离怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Docker+...
    99+
    2023-07-04
  • python中SQLAlchemy怎么使用前端页面实现插入数据
    这篇文章主要介绍“python中SQLAlchemy怎么使用前端页面实现插入数据”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中SQLAlchemy怎么使用前端页面实现插入数据”文章能帮...
    99+
    2023-06-29
  • Java前后端分离的在线点餐系统实现详解
    项目功能: 此项目分为两个角色:普通用户和管理员。普通用户有登录注册、浏览商品信息、添加购物车、结算订单、查看个人信息、查看个人订单详情等等功能。管理员有管理所有商品信息、管理所有订...
    99+
    2024-04-02
  • 前端怎么实现.md文件转换成.html文件
    这篇文章主要为大家展示了“前端怎么实现.md文件转换成.html文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“前端怎么实现.md文件转换成.html文件”这...
    99+
    2024-04-02
  • 前端可视化搭建组件值与联动实现详解
    目录正文组件值值联动描述联动行为用持续联动实现一次性联动总结正文 组件联动是指几个组件相互关联。也就是当一个组件状态变化时,其他组件可以响应。 组件联动是多对多关系的,且目的分为一次...
    99+
    2023-05-19
    前端可视化搭建组件值联动 前端可视化搭建
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作