javascript如何实现暂停功能


Posted in Javascript onNovember 06, 2015

本文实例讲述了JS实现的自定义网页拖动类。分享给大家供大家参考,具体如下:
Javascript本身没有暂停功能(sleep不能使用)同时 vbscript也不能使用doEvents,故编写此函数实现此功能。
javascript作为弱对象语言,一个函数也可以作为一个对象使用。
比如:

function Test(){ 

 alert("hellow"); 

 this.NextStep=function(){ 

 alert("NextStep"); 

 } 

}

我们可以这样调用 var myTest=new Test();myTest.NextStep(); 
我们做暂停的时候可以吧一个函数分为两部分,暂停操作前的不变,把要在暂停后执行的代码放在this.NextStep中。
为了控制暂停和继续,我们需要编写两个函数来分别实现暂停和继续功能。
暂停函数如下:   

<script language="javascript"> 
function sleep(obj,iMinSecond){ 

 if (window.eventList==null) window.eventList=new Array(); 

 var ind=-1; 

 for (var i=0;i<window.eventList.length;i++){ 

  if (window.eventList[i]==null) { 

   window.eventList[i]=obj; 

   ind=i; 

   break; 

  } 

 } 

 

 if (ind==-1){ 

  ind=window.eventList.length; 

  window.eventList[ind]=obj; 

 } 
 

 setTimeout("goon(" + ind + ")",iMinSecond); 

} 

/* 

该函数把要暂停的函数放到数组window.eventList里,同时通过setTimeout来调用继续函数。 

继续函数如下: 

*/ 
 

function goon(ind){ 

 var obj=window.eventList[ind]; 

 window.eventList[ind]=null; 

 if (obj.NextStep) obj.NextStep(); 

 else obj(); 

} 

/* 

该函数调用被暂停的函数的NextStep方法,如果没有这个方法则重新调用该函数。 

 

函数编写完毕,我们可以作如下: 

*/ 

function Test(){ 

 alert("hellow"); 

 sleep(this,3000);//调用暂停函数 

 this.NextStep=function(){ 

 alert("NextStep"); 

 } 

} 
Test(); 

</script>

 希望本文对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
extjs render 用法介绍
Sep 11 Javascript
Google 地图API资料整理及详细介绍
Aug 06 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
Dec 13 Javascript
详解用webpack2搭建angular2的项目
Jun 22 Javascript
Vue的移动端多图上传插件vue-easy-uploader的示例代码
Nov 27 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
如何实现一个webpack模块解析器
Oct 24 Javascript
微信小程序 swiper 组件遇到的问题及解决方法
May 26 Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 Javascript
layui表格数据复选框回显设置方法
Sep 13 Javascript
vue-cropper插件实现图片截取上传组件封装
May 27 Vue.js
JavaScript实现带缓冲效果的随屏滚动漂浮广告代码
Nov 06 #Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 #Javascript
JS实现的自定义网页拖动类
Nov 06 #Javascript
js基础知识(公有方法、私有方法、特权方法)
Nov 06 #Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
Nov 06 #Javascript
javascript中的altKey 和 Event属性大全
Nov 06 #Javascript
JS日期加减,日期运算代码
Nov 05 #Javascript
You might like
用PHP连mysql和oracle数据库性能比较
2006/10/09 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
PHP生成可点击刷新的验证码简单示例
2016/05/13 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
jQuery实现 上升、下降、删除、添加一行代码
2017/03/06 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
使用 Vue.js 仿百度搜索框的实例代码
2017/05/09 Javascript
AngularJS入门教程二:在路由中传递参数的方法分析
2017/05/27 Javascript
详解Axios统一错误处理与后置
2018/09/26 Javascript
详解js删除数组中的指定元素
2018/10/31 Javascript
vue中过滤器filter的讲解
2019/01/21 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
[58:54]EG vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python网络编程学习笔记(六):Web客户端访问
2014/06/09 Python
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
python调用百度REST API实现语音识别
2018/08/30 Python
python抓取京东小米8手机配置信息
2018/11/13 Python
django Admin文档生成器使用详解
2019/07/22 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
django使用channels实现通信的示例
2020/10/19 Python
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
局部内部类是否可以访问非final变量?
2013/04/20 面试题
个人批评与自我批评总结
2014/10/17 职场文书
《藏戏》教学反思
2016/02/23 职场文书
JavaScript模拟实现网易云轮播效果
2022/04/04 Javascript
我家女友可不止可爱呢 公开OP主题曲无字幕动画MV
2022/04/11 日漫