当前位置: 首页 > 编程笔记 >

javascript如何实现暂停功能

欧阳成弘
2023-03-14
本文向大家介绍javascript如何实现暂停功能,包括了javascript如何实现暂停功能的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了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程序设计有所帮助。

 类似资料:
  • 需求:实现一个功能,有多个span标签,内容为用户名,点击span标签,使其以tag的形式出现在一个contentEditable为true的div中,并且tag有背景色和4px的padding,tag不可编辑,当鼠标在div有焦点,则在当前焦点处插入tag,否则将tag加在最后面。 各位有什么实现方案吗 技术:在vue项目中。不要库。原生js实现

  • 我正在构建具有恢复/暂停功能的m4a录制的Android应用程序。可能吗?如果是,请告诉我解决方案。 谢谢

  • 本文向大家介绍JavaScript暂停和继续定时器的实现方法,包括了JavaScript暂停和继续定时器的实现方法的使用技巧和注意事项,需要的朋友参考一下 对于JavaScript的定时器来说没有严格意义上的暂停和重启,只有清除停止,但是可以通过一些‘障眼法'实现 以上所述是小编给大家介绍的JavaScript暂停和继续定时器的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复

  • 问题内容: 如何使用Java脚本暂停和恢复setInterval()函数? 例如,也许我有一个秒表来告诉您您浏览网页的秒数。有一个“暂停”和“恢复”按钮。 clearInterval()在此处不起作用 的原因是,如果用户在第40秒和第800毫秒单击“暂停”按钮,则当他单击“恢复”按钮时,经过的秒数必须在之后增加1 200毫秒。如果我在计时器变量上使用clearInterval()函数(单击暂停按钮

  • 问题内容: 最近,我开始将ucos-ii移植到Ubuntu PC。 众所周知,在ucos-ii中无法通过在pthread的回调函数中的“ while”循环中添加一个标记来执行暂停和恢复来模拟“进程”,以执行暂停和恢复操作(类似于下面的解决方案)。因为ucos- ii中的“进程”可以随时暂停或恢复! 我在下面的网站上找到了一种解决方案,但是由于过时而无法构建。它使用Linux中的进程来模拟ucos-

  • 我目前正在intelij内部制作一个游戏的框架,因为我还不能做图形处理。目前的情况是,我需要对话,所以我需要使用打印功能和它们之间的暂停。 所以我知道一些想法,比如睡眠和等待功能,但我不确定我是否输入错误,或者它们只是另一种语言(顺便说一句,它是java的)