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对表单的操作代码集合
Apr 06 Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 Javascript
下雪了 javascript实现雪花飞舞
Aug 02 Javascript
手机图片预览插件photoswipe.js使用总结
Aug 25 Javascript
如何使用JS在HTML中自定义字符串格式化
Jul 20 Javascript
angular的输入和输出的使用方法
Sep 22 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
Jan 27 Javascript
详解使用uni-app开发微信小程序之登录模块
May 09 Javascript
微信小程序 多行文本显示...+显示更多按钮和收起更多按钮功能
Sep 26 Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
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
数据库的日期格式转换
2006/10/09 PHP
php eval函数用法 PHP中eval()函数小技巧
2012/10/31 PHP
Laravel 5框架学习之向视图传送数据
2015/04/08 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
javascript常见用法总结
2014/05/22 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
浅析JavaScript中的对象类型Object
2016/05/26 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
2017/01/04 Javascript
JS实现常见的查找、排序、去重算法示例
2018/05/21 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
vue如何截取字符串
2019/05/06 Javascript
vue中v-show和v-if的异同及v-show用法
2019/06/06 Javascript
小程序跳转H5页面的方法步骤
2020/03/06 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
python pandas消除空值和空格以及 Nan数据替换方法
2018/10/30 Python
Django之PopUp的具体实现方法
2019/08/31 Python
在OpenCV里实现条码区域识别的方法示例
2019/12/04 Python
Python While循环语句实例演示及原理解析
2020/01/03 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python实现分数序列求和
2020/02/25 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
详解CSS透明opacity和IE各版本透明度滤镜filter的最准确用法
2016/12/20 HTML / CSS
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
英国最大的在线快递公司之一:ParcelHero
2019/11/04 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
别名指示符是什么
2012/10/08 面试题
保安员岗位职责
2013/11/17 职场文书
体育教学随笔感言
2014/02/24 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
新员工试用期工作总结2015
2015/05/28 职场文书
复兴之路展览观后感
2015/06/02 职场文书
同事欢送会致辞
2015/07/31 职场文书