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实现高亮显示的方法
Mar 10 Javascript
JavaScript获取网页中第一个链接ID的方法
Apr 03 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
JavaScript实现阿拉伯数字和中文数字互相转换
Jun 12 Javascript
完美JQuery图片切换效果的简单实现
Jul 21 Javascript
javascript history对象详解
Feb 09 Javascript
微信小程序中使用javascript 回调函数
May 11 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
Oct 22 Javascript
vue项目使用微信公众号支付总结及遇到的坑
Oct 23 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
Nov 24 Javascript
vue缓存之keep-alive的理解和应用详解
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
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
php数组函数序列 之shuffle()和array_rand() 随机函数使用介绍
2011/10/29 PHP
php 数组随机取值的简单实例
2016/05/23 PHP
CI框架常用函数封装实例
2016/11/21 PHP
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
js 判断上传文件大小及格式代码
2013/11/13 Javascript
Javascript前端UI框架Kit使用指南之kitjs的对话框组件
2014/11/28 Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
2016/02/25 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
基于JS实现弹出一个隐藏的div窗口body页面变成灰色并且不可被编辑
2016/12/14 Javascript
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
在node中如何使用 ES6
2017/04/22 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
vue中各选项及钩子函数执行顺序详解
2018/08/25 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
Vue左滑组件slider使用详解
2020/08/21 Javascript
Python编写屏幕截图程序方法
2015/02/18 Python
Python实现数据库编程方法详解
2015/06/09 Python
python记录程序运行时间的三种方法
2017/07/14 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
Linux下通过python获取本机ip方法示例
2019/09/06 Python
Python程序暂停的正常处理方法
2019/11/07 Python
Python实现一个简单的毕业生信息管理系统的示例代码
2020/06/08 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
英国最大的美妆产品在线零售商之一:Beauty Bay
2017/09/29 全球购物
馥绿德雅美国官方网站:Rene Furterer头皮护理专家
2019/05/01 全球购物
创新型城市实施方案
2014/03/06 职场文书
小学竞选班长演讲稿
2014/09/09 职场文书
学校师德师风整改措施
2014/10/27 职场文书
兼职安全员岗位职责
2015/02/15 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
学校会议通知范文
2015/04/15 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers