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 相关文章推荐
javascript+iframe 实现无刷新载入整页的代码
Mar 17 Javascript
Json2Template.js 基于jquery的插件 绑定JavaScript对象到Html模板中
Oct 29 Javascript
jsonp原理及使用
Oct 28 Javascript
Jquery性能优化详解
May 15 Javascript
jquery实现表单验证并阻止非法提交
Jul 09 Javascript
js实现各种复制到剪贴板的方法(分享)
Oct 27 Javascript
基于EasyUI的基础之上实现树形功能菜单
Jun 28 Javascript
微信小程序分页加载的实例代码
Jul 11 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
Jan 16 Javascript
解决Vue-cli无法编译es6的问题
Oct 30 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 Vue.js
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管理依赖(dependency)关系工具 Composer的自动加载(autoload)
2014/08/18 PHP
php_imagick实现图片剪切、旋转、锐化、减色或增加特效的方法
2014/12/15 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
textarea中的手动换行处理的jquery代码
2011/02/26 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
JQuery 给元素绑定click事件多次执行的解决方法
2014/09/09 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
Node.js制作简单聊天室
2017/01/12 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
JavaScript中在光标处插入添加文本标签节点的详细方法
2017/03/22 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
JS实现AES加密并与PHP互通的方法分析
2017/04/19 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
在Python的Django框架中获取单个对象数据的简单方法
2015/07/17 Python
python中列表和元组的区别
2017/12/18 Python
Python闭包和装饰器用法实例详解
2019/05/22 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
亚马逊西班牙购物网站:amazon西班牙
2017/03/06 全球购物
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
法国最大电子商务平台:Cdiscount
2018/03/13 全球购物
成功的酒店创业计划书
2013/12/27 职场文书
两只小狮子教学反思
2014/02/05 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
群众路线剖析材料(四风)
2014/11/05 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
暑期家教宣传单
2015/07/14 职场文书
大学同学聚会感言
2015/07/30 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
2016年十一促销广告语
2016/01/28 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
Python将CSV文件转化为HTML文件的操作方法
2021/06/30 Python
hive数据仓库新增字段方法
2022/06/25 数据库