移动套餐资费一览表日租卡和月租卡的不同?

怎么让setInterval函数停止?【javascript吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:145,107贴子:
怎么让setInterval函数停止?收藏
//获取开始界面var startScreen = document.getElementById(&start_Screen&);//获取开始界面的开始按钮var playButton = document.getElementById(&play_Button&);//获取开始界面的logo_Planevar logoPlane = document.getElementById(&logo_Plane&);var logoPlaneX = 0;var logoPlaneY = 0;window.onload = function(){
if(logoPlaneY &= -50){
clearInterval(move1); }else{
setInterval(move1,40);
} }//logo_Plane移动var move1 = function logoPlaneMove(){ logoPlane.style.left = logoPlaneX + 300 + &px&; logoPlane.style.top = logoPlaneY + 145 + &px&;
logoPlaneY--; logoPlaneX--;
千锋javascript 名师荟萃 汇聚html5前沿技术 全栈式教学模式 免费试学两周千锋javascript 0基础20周快速提升,成就html5实战精英 实战教学 学习就业无缝对接!
这样写没有作用啊
window.runTimer = setInterval(move1,40);clearInterval( window.runTimer );
要将SetInterval(“”,second)赋给一个变量,才能用clearInterval(
变量名) 停止计时器。
登录百度帐号推荐应用关于一段js中出现多次使用setInterval的问题 - 忧郁的ej - ITeye技术网站
博客分类:
有这样一个需求:
有一组数据需要展示,一共多少不限。5秒钟显示一组,整个数据显示完全后从头开始显示,即轮循。鼠标放上去后停止切换,鼠标移开后接着切换。
我用的方法是:
所有数据一次全部取出来,然后进行js分组。使用js的setInterval。这个问题一定要切记使用,非第一次使用一定要:window.clearInterval(xunhuan);处理不好的话,尤其是多次使用,不然会造成时间的累积,最后混乱。
特贴出下面一段代码:
$(".eliteRecommend").die().bind("mouseover",function() {
//console.log("clear interval");
clearInterval(xunhuan);
}).mouseout(function() {
window.clearInterval(xunhuan);
xunhuan = window.setInterval(function() {
//console.log("interval-line-122 " + new Date());
if(j & data.memberCFormArr.length) {
if(j == data.memberCFormArr.length) {
if(j % num != 0) {
//adduserIds(userIdArr);
//adduserIds(userIdArr);
if(j & data.memberCFormArr.length) {
j = data.memberCFormArr.
showucresumes(j, data, currentpage, k);
bluetaoren
浏览: 26715 次
来自: 北京
Z_408 写道这个可以的,你不妨试试。Action中代码:p ...
这个可以的,你不妨试试。Action中代码:public St ...
请问有上传图片到BLOB的例子么Js中setTimeout()和setInterval() 何时被调用执行的用法
字体:[ ] 类型:转载 时间:
本篇文章,小编将为大家介绍Js中setTimeout()和setInterval() 何时被调用执行的用法,有需要的朋友可以参考一下
定义setTimeout()和setInterval()经常被用来处理延时和定时任务。setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则可以在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。从定义上我们可以看到两个函数十分类似,只不过前者执行一次,而后者可以执行多次,两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。很简单的定义,使用起来也很简单,但有时候我们的代码并不是按照我们的想象精确时间被调用的,很让人困惑简单示例看个简单的例子,简单页面在加载完两秒后,写下Delayed alert! 代码如下:setTimeout('document.write("Delayed alert!");', 2000);看起来很合理,我们再看个setInterVal()方法的例子 代码如下:var num = 0;&&&&&&& var i = setInterval(function() {&&&&&&&&&&& num++;&&&&&&&&&&& var date = new Date();&&&&&&&&&&& document.write(date.getMinutes() + ':' + date.getSeconds() + ':' + date.getMilliseconds() + '&br&');&&&&&&&&&&& if (num & 10)&&&&&&&&&&&&&&& clearInterval(i);&&&&&&& }, 1000);页面每隔1秒记录一次当前时间(分钟:秒:毫秒),记录十次后清除,不再记录。考虑到代码执行时间可能记录的不是执行时间,但时间间隔应该是一样的,看看结果 代码如下::38:116:39:130:40:144:41:158:42:172:43:186:44:200:45:214:46:228:47:242:48:256为什么时间间隔几乎是1000毫秒,但不精确,这是为什么呢?原因在于我们对JavaScript定时器存在一个误解,JavaScript其实是运行在单线程的环境中的,这就意味着定时器仅仅是计划代码在未来的某个时间执行,而具体执行时机是不能保证的,因为页面的生命周期中,不同时间可能有其他代码在控制JavaScript进程。在页面下载完成后代码的运行、事件处理程序、Ajax回调函数都是使用同样的线程,实际上浏览器负责进行排序,指派某段程序在某个时间点运行的优先级。我们把效果放大一下看看,添加一个耗时的任务 代码如下:function test() {&&&&&&&&&&& for (var i = 0; i & 500000; i++) {&&&&&&&&&&&&&&& var div = document.createElement('div');&&&&&&&&&&&&&&& div.setAttribute('id', 'testDiv');&&&&&&&&&&&&&&& document.body.appendChild(div);&&&&&&&&&&&&&&& document.body.removeChild(div);&&&&&&&&&&& }&&&&&&& }&&&&&&& setInterval(test, 10);&&&&&&& var num = 0;&&&&&&& var i = setInterval(function() {&&&&&&&&&&& num++;&&&&&&&&&&& var date = new Date();&&&&&&&&&&& document.write(date.getMinutes() + ':' + date.getSeconds() + ':' + date.getMilliseconds() + '&br&');&&&&&&&&&&& if (num & 10)&&&&&&&&&&&&&&& clearInterval(i);&&&&&&& }, 1000);我们又加入了一个定时任务,看看结果 代码如下::9:222:12:482:16:8:19:143:22:631:25:888:28:712:32:381:34:146:35:565:37:406这下效果明显了,差距甚至都超过了3秒,而且差距很不一致。我们可以可以把JavaScript想象成在时间线上运行。当页面载入的时候首先执行的是页面生命周期后面要用的方法和变量声明和数据处理,在这之后JavaScript进程将等待更多代码执行。当进程空闲的时候,下一段代码会被触发除了主JavaScript进程外,还需要一个在进程下一次空闲时执行的代码队列。随着页面生命周期推移,代码会按照执行顺序添加入队列,例如当按钮被按下的时候他的事件处理程序会被添加到队列中,并在下一个可能时间内执行。在接到某个Ajax响应时,回调函数的代码会被添加到队列。JavaScript中没有任何代码是立即执行的,但一旦进程空闲则尽快执行。定时器对队列的工作方式是当特定时间过去后将代码插入,这并不意味着它会马上执行,只能表示它尽快执行。知道了这些后,我们就能明白,如果想要精确的时间控制,是不能依赖于JavaScript的setTimeout函数的。重复的定时器使用 setInterval() 创建的定时器可以使代码循环执行,到有指定效果的时候,清除interval就可以,如下例 代码如下:var my_interval = setInterval(function () {&&&&&&&&&&& if (condition) {&&&&&&&&&&&&&&& //..........&&&&&&&&&&& } else {&&&&&&&&&&&&&&& clearInterval(my_interval);&&&&&&&&&&& }&&&&&&& }, 100);但这个方式的问题在于定时器的代码可能在代码再次被添加到队列之前还没有执行完成,结果导致循环内的判断条件不准确,代码多执行几次,之间没有停顿。不过JavaScript已经解决这个问题,当使用setInterval()时,仅当没有该定时器的其他代码实例时才将定时器代码插入队列。这样确保了定时器代码加入到队列的最小时间间隔为指定间隔。这样的规则带来两个问题1.1. 某些间隔会被跳过2.2.多个定时器的代码执行之间的间隔可能比预期要小为了避免这两个缺点,我们可以使用setTimeout()来实现重复的定时器 代码如下:setTimeout(function () {&&&&&&&&&&& //code&&&&&&&&&&& setTimeout(arguments.callee, interval);&&&&&&& }, interval)这样每次函数执行的时候都会创建一个新的定时器,第二个setTimeout()调用使用了agrument.callee 来获取当前实行函数的引用,并设置另外一个新定时器。这样做可以保证在代码执行完成前不会有新的定时器插入,并且下一次定时器代码执行之前至少要间隔指定时间,避免连续运行。 代码如下:setTimeout(function () {&&&&&&&&&&& var div = document.getElementById('moveDiv');&&&&&&&&&&& var left = parseInt(div.style.left) + 5;&&&&&&&&&&& div.style.left = left + 'px';&&&&&&&&&&& if (left & 200) {&&&&&&&&&&&&&&& setTimeout(arguments.callee, 50);&&&&&&&&&&& }&&&&&&& }, 50);这段定时器代码每次执行的时候,把一个div向右移动5px,当坐标大于200的时候停止。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
最近在做一个小功能,五张图片在一个椭圆轨道上做轨迹运动,当图片运动到最低点时,下面的内容切换到对应的内容,并且暂停五分钟
现在就是想怎么样当图片运动到最低点时,暂停五分钟,五分钟后再重启这个setInterval方法?
代码放在codpen上了
我想到的是暂停周期函数的时候,记下时间oldDate,然后另外设置一个定时器,存储时间newDate,当两者差为五分钟时,重启周期函数,发现并没有达到预期效果。
请问你们有没有什么解决办法,能暂停五分钟后,再重启这个定时器?
//运动函数
var fun_animat = function(){
//do something
//如果图片的top值是最大值切换下面的内容
if(parseInt(wpers) === 1) {
$(".content-box .content").each(function(index1) {
$(this).css('display','none')
$(".content-box .content").eq(index).css('display','block')
//最低点时暂停轨迹运动
if(wpers === 1.05) {
clearInterval(setAnimate);
oldDate = new Date().getTime();
console.log(oldDate);
//定时调用运动函数
var setAnimate = setInterval(fun_animat,200);
//通过设置newDate oldDate,当他们的时间差是五分钟,重启setInterval函数(发现没有达到预期效果)
function fun_date() {
newDate = new Date().getTime();
console.log('newDate:'+ newDate);
if(newDate - oldDate === 30000) {
setAnimate = setInterval(fun_animat,200);
var setReset = setInterval(fun_date,200);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
创建个周期为1秒的时钟,设置个全局变量times用来记住已经过去时间,每周期判断times%5*60==0则触发,否则不做处理。
嗯。思路差不多这样。
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 App评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
第一章 JavaScript (基础)
第二章 JavaScript(高级)}

我要回帖

更多关于 移动套餐资费一览表 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信