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 相关文章推荐
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
Dec 28 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
easyui Draggable组件实现拖动效果
Aug 19 Javascript
javascript鼠标右键菜单自定义效果
Dec 08 Javascript
学习Javascript闭包(Closure)知识
Aug 07 Javascript
Vue2.0权限树组件实现代码
Aug 29 Javascript
JS实现select选中option触发事件操作示例
Jul 13 Javascript
JavaScript中this用法学习笔记
Mar 17 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
Apr 10 Javascript
p5.js实现故宫橘猫赏秋图动画
Oct 23 Javascript
vant picker+popup 自定义三级联动案例
Nov 04 Javascript
JS实现页面侧边栏效果探究
Jan 08 Javascript
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 allow_url_include的应用和解释
2010/04/22 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
Javascript的时间戳和php的时间戳转换注意事项
2013/04/12 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
JavaScript函数的4种调用方法详解
2014/04/22 Javascript
JavaScript设计模式之工厂方法模式介绍
2014/12/28 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
解决vue项目中type=”file“ change事件只执行一次的问题
2018/05/16 Javascript
使用Angular Cli如何创建Angular私有库详解
2019/01/30 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
2020/09/16 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
Python计算字符宽度的方法
2016/06/14 Python
python正则中最短匹配实现代码
2018/01/16 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Python异常处理操作实例详解
2018/08/28 Python
python调用支付宝支付接口流程
2019/08/15 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
2020/11/06 Python
史上最详细的Python打包成exe文件教程
2021/01/17 Python
Ruby如何创建一个线程
2013/03/10 面试题
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
2014年仓管员工作总结
2014/11/18 职场文书
大国崛起观后感
2015/06/02 职场文书
小英雄雨来观后感
2015/06/09 职场文书
独生子女证明范本
2015/06/19 职场文书
详解mysql三值逻辑与NULL
2021/05/19 MySQL
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL