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 相关文章推荐
[IE&amp;FireFox兼容]JS对select操作
Jan 07 Javascript
JavaScript 组件之旅(二)编码实现和算法
Oct 28 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
Mar 14 Javascript
解析window.open的使用方法总结
Jun 19 Javascript
js动态生成指定行数的表格
Jul 11 Javascript
jquery1.10给新增元素绑定事件的方法
Mar 06 Javascript
JS判断客户端是手机还是PC的2个代码
Apr 12 Javascript
谈谈JavaScript异步函数发展历程
Sep 29 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
Jun 08 Javascript
canvas红包照片实例分享
Feb 28 Javascript
ionic环境配置及问题详解
Jun 27 Javascript
js 数组详细操作方法及解析合集
Jun 01 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
强烈推荐:php.ini中文版(2)
2006/10/09 PHP
PHP统计二维数组元素个数的方法
2013/11/12 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
学习php设计模式 php实现门面模式(Facade)
2015/12/07 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
thinkPHP框架动态配置用法实例分析
2018/06/14 PHP
分享十五个最佳jQuery 幻灯插件和教程
2010/03/27 Javascript
最佳的addEvent事件绑定是怎样诞生的
2011/10/24 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
JavaScript window.location对象
2014/11/14 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
JavaScript中ES6字符串扩展方法
2016/08/26 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
jQuery密码强度验证控件使用详解
2017/01/05 Javascript
微信小程序获取手机号授权用户登录功能
2017/11/09 Javascript
layDate插件设置开始和结束时间
2018/11/15 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
Vue中watch、computed、updated三者的区别及用法
2020/07/27 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
Django 源码WSGI剖析过程详解
2019/08/05 Python
Python实现投影法分割图像示例(二)
2020/01/17 Python
jupyter notebook清除输出方式
2020/04/10 Python
英国鞋网:Rubber Sole
2020/03/03 全球购物
什么是用户模式(User Mode)与内核模式(Kernel Mode) ?
2015/09/07 面试题
房地产员工找工作的自我评价
2013/11/15 职场文书
小学科学教学反思
2014/01/26 职场文书
酒店开业庆典主持词
2014/03/21 职场文书
门市房租房协议书
2014/12/04 职场文书
党员个人自我评价
2015/03/03 职场文书
个人借条范本
2015/05/25 职场文书
新闻发布会新闻稿
2015/07/17 职场文书