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 相关文章推荐
js可突破windows弹退效果代码
Aug 09 Javascript
Jquery AJAX 框架的使用方法
Nov 03 Javascript
解析Javascript中难以理解的11个问题
Dec 09 Javascript
jquery仿京东侧边栏导航效果
Mar 02 Javascript
JavaScript之json_动力节点Java学院整理
Jun 29 Javascript
react native带索引的城市列表组件的实例代码
Aug 08 Javascript
React-Native使用Mobx实现购物车功能
Sep 14 Javascript
JavaScript中Object基础内部方法图
Feb 05 Javascript
详解Vue-cli webpack移动端自动化构建rem问题
Apr 07 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
Nov 25 Javascript
javascript实现前端成语点击验证
Jun 24 Javascript
vue+iview使用树形控件的具体使用
Nov 02 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
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
PHP模板引擎Smarty内建函数section,sectionelse用法详解
2016/04/11 PHP
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
Javascript 浮点运算精度问题分析与解决
2014/03/26 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
2014/10/17 Javascript
JavaScript中toString()方法的使用详解
2015/06/05 Javascript
jQuery热气球动画半透明背景的后台登录界面代码分享
2015/08/28 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
ionic App问题总结系列之ionic点击系统返回键退出App
2017/08/19 Javascript
静态页面实现 include 引入公用代码的示例
2017/09/25 Javascript
react-navigation之动态修改title的内容
2018/09/26 Javascript
Vue和React组件之间的传值方式详解
2019/01/31 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
2019/12/06 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
高性能web服务器框架Tornado简单实现restful接口及开发实例
2014/07/16 Python
Python使用ntplib库同步校准当地时间的方法
2016/07/02 Python
NetworkX之Prim算法(实例讲解)
2017/12/22 Python
Python实现FLV视频拼接功能
2020/01/21 Python
tensorflow自定义激活函数实例
2020/02/04 Python
Python中内建模块collections如何使用
2020/05/27 Python
python接入支付宝的实例操作
2020/07/20 Python
利用Opencv实现图片的油画特效实例
2021/02/28 Python
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
迎国庆演讲稿
2014/09/15 职场文书
教学改革问题查摆整改措施
2014/09/27 职场文书
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis