JavaScript模拟实现键盘打字效果


Posted in Javascript onJune 29, 2015
$(function () {
 
 
      var input_type = {
        init:function ($obj) {
          this.name = $obj.html().split("")
          this.length = this.name.length;
          this.i = 0;
        },
        pri:function () {
          var $this = this
          //在此处只能使用闭包,因为windown.settimeout使函数的this指向object windown,而非原型链的this对象。而此时我需要递归,所以只能将this对象传到闭包内,递归匿名的闭包函数。
          return (function () {
            if ($this.i > $this.length) {
              window.clearTimeout(Go)
              return false;
            }
            var char = $this.name
            $(".div1").append(char[$this.i])
            $this.i++
            var Go = window.setTimeout(arguments.callee, 100)//在这里arguments.callee妙用因为是匿名闭包,调用函数本身。
          })
        }
      }
 
 
//建立class类
      function Input_type() {
        this.init.apply(this, arguments)
      }
 
      Input_type.prototype = input_type
 
//创建实例
      var p = new Input_type($(".content"))
      p.pri()()
 
    });

总结:为了实现每次循环间隔时间,用window.settimeout递归的写法。 因为想用原型链封装,this冲突,所以递归调用匿名的闭包函数。用arguments.callee表示匿名函数。

HTML代码:

<button id="pri">pri</button>
<div class="content" style="display: none;">
  我与父亲不相见已二年余了,我最不能忘记的是他的背影。那年冬天,祖母死了,父亲的差使也交卸了,正是祸不单行的日子,我从北京到徐州,打算跟着父亲奔丧回家。到徐州见着父亲,看见满院狼藉的东西,又想起祖母,不禁簌簌地流下眼泪。父亲说,“事已如此,不必难过,好在天无绝人之路!”
  
回家变卖典质,父亲还了亏空;又借钱办了丧事。这些日子,家中光景很是惨淡,一半为了丧事,一半为了父亲赋闲。丧事完毕,父亲要到南京谋事,我也要回北京念书,我们便同行。
  
到南京时,有朋友约去游逛,勾留了一日;第二日上午便须渡江到浦口,下午上车北去。父亲因为事忙,本已说定不送我,叫旅馆里一个熟识的茶房陪我同去。他再三嘱咐茶房,甚是仔细。但他终于不放心,怕茶房不妥帖;颇踌躇了一会。其实我那年已二十岁,北京已来往过两三次,是没有甚么要紧的了。他踌躇了一会,终于决定还是自己送我去。我两三回劝他不必去;他只说,“不要紧,他们去不好!”
  
我们过了江,进了车站。我买票,他忙着照看行李。行李太多了,得向脚夫行些小费,才可过去。他便又忙着和他们讲价钱。我那时真是聪明过分,总觉他说话不大漂亮,非自己插嘴不可。但他终于讲定了价钱;就送我上车。他给我拣定了靠车门的一张椅子;我将他给我做的紫毛大衣铺好坐位。他嘱我路上小心,夜里警醒些,不要受凉。又嘱托茶房好好照应我。我心里暗笑他的迂;他们只认得钱,托他们直是白托!而且我这样大年纪的人,难道还不能料理自己么?唉,我现在想想,那时真是太聪明了!
  
我说道,“爸爸,你走吧。”他望车外看了看,说,“我买几个橘子去。你就在此地,不要走动。”我看那边月台的栅栏外有几个卖东西的等着顾客。走到那边月台,须穿过铁道,须跳下去又爬上去。父亲是一个胖子,走过去自然要费事些。我本来要去的,他不肯,只好让他去。我看见他戴着黑布小帽,穿着黑布大马褂,深青布棉袍,蹒跚地走到铁道边,慢慢探身下去,尚不大难。可是他穿过铁道,要爬上那边月台,就不容易了。他用两手攀着上面,两脚再向上缩;他肥胖的身子向左微倾,显出努力的样子。这时我看见他的背影,我的泪很快地流下来了。我赶紧拭干了泪,怕他看见,也怕别人看见。我再向外看时,他已抱了朱红的橘子望回走了。过铁道时,他先将橘子散放在地上,自己慢慢爬下,再抱起橘子走。到这边时,我赶紧去搀他。他和我走到车上,将橘子一股脑儿放在我的皮大衣上。于是扑扑衣上的泥土,心里很轻松似的,过一会说,“我走了;到那边来信!”我望着他走出去。他走了几步,回过头看见我,说,“进去吧,里边没人。”等他的背影混入来来往往的人里,再找不着了,我便进来坐下,我的眼泪又来了。
  
近几年来,父亲和我都是东奔西走,家中光景是一日不如一日。他少年出外谋生,独力支持,做了许多大事。那知老境却如此颓唐!他触目伤怀,自然情不能自已。情郁于中,自然要发之于外;家庭琐屑便往往触他之怒。他待我渐渐不同往日。但最近两年的不见,他终于忘却我的不好,只是惦记着我,惦记着我的儿子。我北来后,他写了一信给我,信中说道,“我身体平安,惟膀子疼痛利害,举箸提笔,诸多不便,大约大去之期不远矣。”我读到此处,在晶莹的泪光中,又看见那肥胖的,青布棉袍,黑布马褂的背影。唉!我不知何时再能与他相见!
</div>
<div class="div1">

</div>
Javascript 相关文章推荐
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
jquery获取元素索引值index()示例
Feb 13 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
Jul 18 Javascript
JavaScript学习笔记整理_setTimeout的应用
Sep 19 Javascript
js获取指定时间的前几秒
Apr 05 Javascript
Vue2.0 组件传值通讯的示例代码
Aug 01 Javascript
慕课网题目之js实现抽奖系统功能
Sep 19 Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
Jan 03 Javascript
vue-router动态设置页面title的实例讲解
Aug 30 Javascript
js canvas实现写字动画效果
Nov 30 Javascript
国内常用的js类库大全(CDN公共库)
Jun 24 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
Dec 11 Vue.js
JavaScript实现把数字转换成中文
Jun 29 #Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 #Javascript
jQuery模拟黑客帝国矩阵效果实例
Jun 28 #Javascript
jQuery往textarea中光标所在位置插入文本的方法
Jun 26 #Javascript
javascript实现相同事件名称,不同命名空间的调用方法
Jun 26 #Javascript
JavaScript实现数组随机排序的方法
Jun 26 #Javascript
JavaScript让Textarea支持tab按键的方法
Jun 26 #Javascript
You might like
FCKeditor添加自定义按钮
2008/03/27 PHP
简单的PHP缓存设计实现代码
2011/09/30 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
基于Jquery 解决Ajax请求的页面 浏览器后退前进功能,页面刷新功能实效问题
2010/12/11 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
2013/05/07 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
jQuery实现文件上传进度条特效
2015/08/12 Javascript
EasyUi中的Combogrid 实现分页和动态搜索远程数据
2016/04/01 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
js实现文字选中分享功能
2017/01/25 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
jQuery pagination分页示例详解
2018/10/23 jQuery
Vue axios全局拦截 get请求、post请求、配置请求的实例代码
2018/11/28 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
新手简单了解vue
2019/05/29 Javascript
vue双向绑定数据限制长度的方法
2019/11/04 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
[07:57]2018DOTA2国际邀请赛寻真——PSG.LGD凤凰浴火
2018/08/12 DOTA
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
python获取当前计算机cpu数量的方法
2015/04/18 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
python使用os.listdir和os.walk获得文件的路径的方法
2017/12/16 Python
对Python 简单串口收发GUI界面的实例详解
2019/06/12 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python实现在列表中查找某个元素的下标示例
2020/11/16 Python
意大利奢侈品多品牌集合店:TheDoubleF
2019/08/24 全球购物
Helly Hansen工作服美国官方网上商店:为最恶劣的环境
2019/09/04 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
安全生产先进个人事迹材料
2014/12/30 职场文书