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


相关推荐: 如何挑选高效建站主机与优质域名?  香港服务器WordPress建站指南:SEO优化与高效部署策略  UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】  简单实现Android文件上传  教你用AI将一段旋律扩展成一首完整的曲子  php8.4header发送头信息失败怎么办_php8.4header函数问题解决【解答】  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)  千库网官网入口推荐 千库网设计创意平台入口  Laravel如何实现模型的全局作用域?(Global Scope示例)  如何在IIS中配置站点IP、端口及主机头?  edge浏览器无法安装扩展 edge浏览器插件安装失败【解决方法】  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何在阿里云ECS服务器部署织梦CMS网站?  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  如何快速生成专业多端适配建站电话?  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Android自定义listview布局实现上拉加载下拉刷新功能  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  jQuery 常见小例汇总  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  Laravel API资源类怎么用_Laravel API Resource数据转换  利用 Google AI 进行 YouTube 视频 SEO 描述优化  香港服务器租用费用高吗?如何避免常见误区?  如何快速搭建虚拟主机网站?新手必看指南  Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布  Laravel如何处理异常和错误?(Handler示例)  如何快速上传自定义模板至建站之星?  Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件  如何选择可靠的免备案建站服务器?  高防服务器租用如何选择配置与防御等级?  如何快速查询网址的建站时间与历史轨迹?  如何在云服务器上快速搭建个人网站?  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  java ZXing生成二维码及条码实例分享  如何在新浪SAE免费搭建个人博客?  手机软键盘弹出时影响布局的解决方法  Laravel如何保护应用免受CSRF攻击?(原理和示例)  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Swift开发中switch语句值绑定模式  免费网站制作appp,免费制作app哪个平台好?  如何在阿里云虚拟主机上快速搭建个人网站?