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 相关文章推荐
jQuery 使用手册(五)
Sep 23 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
Apr 16 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
Nov 08 Javascript
jQuery功能函数详解
Feb 01 Javascript
jQuery中animate动画第二次点击事件没反应
May 07 Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 Javascript
详解js的事件代理(委托)
Dec 22 Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 Javascript
vue-router实现编程式导航的代码实例
Jan 19 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
Nov 04 Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
Aug 14 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实现的简单mock json脚本分享
2015/02/10 PHP
php操作xml并将其插入数据库的实现方法
2016/09/08 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
Prototype 1.5.0_rc1 及 Prototype 1.5.0 Pre0小抄本
2006/09/22 Javascript
ExtJS的FieldSet的column列布局
2009/11/20 Javascript
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
JavaScript function 的 length 属性使用介绍
2014/09/15 Javascript
jQuery的deferred对象详解
2014/11/12 Javascript
js使用onmousemove和onmouseout获取鼠标坐标的方法
2015/03/31 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
JavaScript toUpperCase()方法使用详解
2016/08/26 Javascript
百度多文件异步上传控件webuploader基本用法解析
2016/11/07 Javascript
详解Vue.js Mixins 混入使用
2017/09/15 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
基于jQuery的时间戳与日期间的转化
2019/06/21 jQuery
解决layer弹出层的内容页点击按钮跳转到新的页面问题
2019/09/14 Javascript
Vuejs通过拖动改变元素宽度实现自适应
2020/09/02 Javascript
vue 数据双向绑定的实现方法
2021/03/04 Vue.js
python负载均衡的简单实现方法
2018/02/04 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
利用pandas进行大文件计数处理的方法
2018/07/25 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
学校大课间活动方案
2014/01/30 职场文书
优秀老师事迹材料
2014/02/05 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
JavaScript canvas实现流星特效
2021/05/20 Javascript
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang