js实现键盘自动打字效果

发布时间 - 2026-01-10 22:03:36    点击率:

最近在网上看到一个字符逐个出现的打字效果,觉得挺有趣的,想一想基本实现思路就是设置一个定时器逐然后逐个向容器中添加字符,于是就基于jQuery写了一个简单版的。

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
     content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>AutoType</title>
</head>
<body>
<div id="autotype"></div>
<script src="//cdn.bootcss.com/jquery/1.9.1/jquery.min.js"></script>
<script>
  $.fn.autotype = function (str, speed) {
    var self = this,
        defaultStr = '<p>我希望有个如你一般的人.</p><br>'
             +'<p>如山间清爽的风.</p><br>'
             +'<p>如古城温暖的光.</p><br>'
             +'<p>从清晨到夜晚.</p><br>'
             +'<p>由山野到书房.</p><br>'
             +'<p>只要最后是你,就好.</p><br>',//将要添加的元素的默认内容
        defaultSpeed = 100,
        str = str || defaultStr,
        speed = speed || defaultSpeed,
        index = 0,
        timer = setInterval(function () {
          var current = str.substr(index, 1);
          if (current == '<') {
            index = str.indexOf('>', index) + 1;
          } else {
            index++;
          }
          self.html(str.substring(0, index) + ( (index & 1) && (index != str.length) ? '_' : ''));
          if (index >= str.length) {
            clearInterval(timer);
          }
        }, speed);
  };
  $("#autotype").autotype();
</script>
</body>
</html>

本人才疏学浅,总觉得自己写的方法比较简陋,于是搜索了一波资料,发现有个不错的jQuery插件Typed.js。

Type.js的基础使用

<script src="jquery.js"></script>
<script src="typed.js"></script>
<script>
  $(function(){
    $(".element").typed({
      strings: ["First sentence.", "Second sentence."],
      typeSpeed: 0
    });
  });
</script>
...

<span class="element"></span>

插件为用户定制了许多默认设置与效果

<script>
  $(function(){
    $(".element").typed({
      strings: ["First sentence.", "Second sentence."],
      // Optionally use an HTML element to grab strings from (must wrap each string in a <p>)
      stringsElement: null,
      // typing speed
      typeSpeed: 0,
      // time before typing starts
      startDelay: 0,
      // backspacing speed
      backSpeed: 0,
      // shuffle the strings
       shuffle: false,
      // time before backspacing
      backDelay: 500,
      // loop
      loop: false,
      // false = infinite
      loopCount: false,
      // show cursor
      showCursor: true,
      // character for cursor
      cursorChar: "|",
      // attribute to type (null == text)
      attr: null,
      // either html or text
      contentType: 'html',
      // call when done callback function
      callback: function() {},
      // starting callback function before each string
      preStringTyped: function() {},
      //callback for every typed string
      onStringTyped: function() {},
      // callback for reset
      resetCallback: function() {}
    });
  });
</script>

具体用法可以看看GitHub地址,带注释的源码400多行,不算复杂。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 键盘  # 打字  # Js 打字效果 逐一出现的文字  # JS实现的自动打字效果示例  # javascript 打字效果的文字特效  # JS模拟键盘打字效果的方法  # JavaScript打字小游戏代码  # JS实现简单的键盘打字的效果  # javascript 打字游戏实现代码  # javascript实现自动输出文本(打字特效)  # 仿打字特效的JS逐字出现的信息文字  # JS实现简单打字测试  # 有个  # 的人  # 才疏学浅  # 就好  # 写了  # 山间  # 总觉得  # 一波  # 如你  # 默认设置  # 清晨  # 夜晚  # 在网上  # cdn  # src  # defaultSpeed  # jquery  # bootcss  # div  # body 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: WEB开发之注册页面验证码倒计时代码的实现  如何在阿里云高效完成企业建站全流程?  浅谈Javascript中的Label语句  Laravel如何使用Blade模板引擎?(完整语法和示例)  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  再谈Python中的字符串与字符编码(推荐)  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  javascript和jQuery中的AJAX技术详解【包含AJAX各种跨域技术】  javascript中对象的定义、使用以及对象和原型链操作小结  大型企业网站制作流程,做网站需要注册公司吗?  Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  Python函数文档自动校验_规范解析【教程】  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  清除minerd进程的简单方法  Laravel API资源类怎么用_Laravel API Resource数据转换  nodejs redis 发布订阅机制封装实现方法及实例代码  如何打造高效商业网站?建站目的决定转化率  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何使用Eloquent进行子查询  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何在 React 中条件性地遍历数组并渲染元素  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  EditPlus中的正则表达式实战(6)  海南网站制作公司有哪些,海口网是哪家的?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  敲碗10年!Mac系列传将迎来「触控与联网」双革新  如何在企业微信快速生成手机电脑官网?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  魔方云NAT建站如何实现端口转发?  高性价比服务器租赁——企业级配置与24小时运维服务  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  如何用PHP快速搭建CMS系统?  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  高性能网站服务器配置指南:安全稳定与高效建站核心方案  如何用已有域名快速搭建网站?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  bootstrap日历插件datetimepicker使用方法  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  mc皮肤壁纸制作器,苹果平板怎么设置自己想要的壁纸我的世界?  晋江文学城电脑版官网 晋江文学城网页版直接进入  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  ChatGPT 4.0官网入口地址 ChatGPT在线体验官网