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 相关文章推荐
js内存泄露的几种情况详细探讨
May 31 Javascript
js控制href内容的连接内容的变化示例
Apr 30 Javascript
node.js中RPC(远程过程调用)的实现原理介绍
Dec 05 Javascript
jQuery+ajax实现无刷新级联菜单示例
May 21 Javascript
微信小程序之前台循环数据绑定
Aug 18 Javascript
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 Javascript
js捆绑TypeScript声明文件的方法教程
Apr 13 Javascript
jQuery实现的导航条点击后高亮显示功能示例
Mar 04 jQuery
JavaScript静态作用域和动态作用域实例详解
Jun 17 Javascript
javascript自定义日期比较函数用法示例
Jul 22 Javascript
微信小程序实现锚点功能
Nov 20 Javascript
微信小程序实现多行文字滚动
Nov 18 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数组函数
2008/08/18 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
Thinkphp单字母函数使用指南
2016/05/08 PHP
php flush无效,IIS7下php实时输出的方法
2016/08/25 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
php中通用的excel导出方法实例
2017/12/30 PHP
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
js如何判断用户是否是用微信浏览器
2014/06/05 Javascript
在JavaScript中模拟类(class)及类的继承关系
2016/05/20 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
Vue中的循环及修改差值表达式的方法
2019/08/29 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python GUI编程(Tkinter) 创建子窗口及在窗口上用图片绘图实例
2020/03/04 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
python操作微信自动发消息的实现(微信聊天机器人)
2020/07/14 Python
3分钟看懂Python后端必须知道的Django的信号机制
2020/07/26 Python
DRF框架API版本管理实现方法解析
2020/08/21 Python
PyCharm2020最新激活码+激活码补丁(亲测最新版PyCharm2020.2激活成功)
2020/11/25 Python
详解Scrapy Redis入门实战
2020/11/18 Python
使用canvas绘制超炫时钟
2014/12/17 HTML / CSS
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
物业管理公司实习生自我鉴定
2013/09/19 职场文书
历史专业学生的自我评价
2014/02/28 职场文书
物业保安员岗位职责
2014/03/14 职场文书
农民工工资承诺书范文
2014/03/31 职场文书
委托书模板
2014/04/04 职场文书
大专毕业生求职信
2014/07/05 职场文书
同意报考证明
2015/06/17 职场文书
CSS 使用 resize 实现图片拖拽切换预览功能(强大功能)
2021/08/23 HTML / CSS