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写入txt和读取txt文件示例
Feb 12 Javascript
node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法
Nov 20 Javascript
jQuery选择器源码解读(七):elementMatcher函数
Mar 31 Javascript
JavaScript实现简单获取当前网页网址的方法
Nov 09 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 Javascript
JS实现一次性弹窗的方法【刷新后不弹出】
Dec 26 Javascript
深入理解JavaScript中的预解析
Jan 04 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
Feb 15 Javascript
jQuery简单实现遍历单选框的方法
Mar 06 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
vue+iview+less+echarts实战项目总结
Feb 22 Javascript
js仿360开机效果
Dec 26 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 命令行工具 shell_exec, exec, passthru, system详细使用介绍
2011/09/11 PHP
php中unlink()、mkdir()、rmdir()等方法的使用介绍
2012/12/21 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
PHP中有关长整数的一些操作教程
2019/09/11 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
Javascript在IE和FireFox中的不同表现简析
2012/12/03 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
基于BootStarp的Dailog
2016/04/28 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
深入理解Vue 的条件渲染和列表渲染
2017/09/01 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
使用vue中的混入mixin优化表单验证插件问题
2019/07/02 Javascript
[40:55]Liquid vs LGD 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
python的dict,set,list,tuple应用详解
2014/07/24 Python
python字符串替换的2种方法
2014/11/30 Python
用Python的pandas框架操作Excel文件中的数据教程
2015/03/31 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
django 通过url实现简单的权限控制的例子
2019/08/16 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
python 19个值得学习的编程技巧
2020/08/15 Python
python statsmodel的使用
2020/12/21 Python
css3实现3D文本悬停改变效果的示例代码
2019/01/16 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
SheIn俄罗斯:时尚女装网上商店
2017/02/28 全球购物
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
莫斯科高科技在线商店:KremlinStore
2019/03/13 全球购物
夏威夷咖啡公司:Hawaii Coffee Company
2019/09/19 全球购物
神路信息Java面试题目
2013/03/31 面试题
环境工程大学生自荐信
2013/10/21 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
基于redis+lua进行限流的方法
2022/07/23 Redis