js实现键盘自动打字效果


Posted in Javascript onDecember 23, 2016

最近在网上看到一个字符逐个出现的打字效果,觉得挺有趣的,想一想基本实现思路就是设置一个定时器逐然后逐个向容器中添加字符,于是就基于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多行,不算复杂。

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

Javascript 相关文章推荐
prototype.js的Ajax对象
Sep 23 Javascript
JS版网站风格切换实例代码
Oct 06 Javascript
JavaScript 动态添加表格行 使用模板、标记
Oct 24 Javascript
javascript setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
使用jQuery重置(reset)表单的方法
May 05 Javascript
JS实现让访问者自助选择网页文字颜色的方法
Feb 24 Javascript
javascript实现简单计算器效果【推荐】
Apr 19 Javascript
动态加载js文件简单示例
Apr 21 Javascript
JavaScript定义数组的三种方法(new Array(),new Array('x','y')
Oct 04 Javascript
javascript 中的事件委托详解
Oct 25 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
Dec 08 Javascript
解决layui上传文件提示上传异常,实际文件已经上传成功的问题
Aug 19 Javascript
Angularjs实现分页和分页算法的示例代码
Dec 23 #Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
Dec 23 #Javascript
ionic开发中点击input时键盘自动弹出
Dec 23 #Javascript
JS敏感词过滤代码
Dec 23 #Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 #Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 #Javascript
JS判断鼠标进入容器的方向与window.open新窗口被拦截的问题
Dec 23 #Javascript
You might like
Terran兵种对照表
2020/03/14 星际争霸
极典R601SW收音机
2021/03/02 无线电
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
PHP生成随机数的方法总结
2018/03/01 PHP
短信提示使用 特效
2007/01/19 Javascript
ECMAScript 基础知识
2007/06/29 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
深入浅出理解javaScript原型链
2015/05/09 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
BootStrap入门教程(二)之固定的内置样式
2016/09/19 Javascript
JavaScript获取中英文混合字符串长度的方法示例
2017/02/04 Javascript
利用PM2部署node.js项目的方法教程
2017/05/10 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
jQuery实现点击自身以外区域关闭弹出层功能完整示例【改进版】
2018/07/31 jQuery
JavaScript防止全局变量污染的方法总结
2018/08/02 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
微信小程序连续签到7天积分获得功能的示例代码
2020/08/20 Javascript
[34:44]Liquid vs TNC Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
HTML5 通过Vedio标签实现视频循环播放的示例代码
2020/08/05 HTML / CSS
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
外国人聘用意向书
2014/04/01 职场文书
环保倡议书范文
2014/05/12 职场文书
园林系毕业生求职信
2014/06/23 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
防卫过当辩护词
2015/05/21 职场文书
长江七号观后感
2015/06/11 职场文书
2016新教师培训心得体会范文
2016/01/08 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android