在每个循环中创建一个间隔

Posted

技术标签:

【中文标题】在每个循环中创建一个间隔【英文标题】:Creating an interval in an each loop 【发布时间】:2012-09-27 23:35:29 【问题描述】:

我正在尝试使用 jQuery 在每个循环中设置一个间隔。我认为以下可能有效,但没有这样的运气:

menuSlide = $(this).animate(
  left: '250px'
, 50, function() 
);

var slideIn = function() 

  $('._jsNav').each(function()
    setTimeout(function(menuSlide) 
    , 200);
 );


$('._jsStage').mouseenter(slideIn);

谁能告诉我它有什么问题?或者如果我不正确地接近它?

谢谢!

【问题讨论】:

简而言之,javascript不支持休眠功能,只支持setTimeout。在您的情况下,主循环将为您快速运行,基于 setTimeout 不要阻止主循环运行。见***.com/questions/951021/… 你想完成什么?每个._jsNav元素是否应该在鼠标进入元素后200ms动画? 【参考方案1】:

你需要那个小plugin jquery-timing 的帮助。 非常短的代码可以满足您的需求:

$('._jsStage').mouseenter(function()
    $('._jsNav').each($).wait(200).animate(left:250,50,$);
);

就是这样!


如果你想在单个 jQuery 行中写同样的东西,插件允许写得更短:

$('._jsStage').on('mouseenter').$('._jsNav').each($).wait(200).animate(left:250,50,$);

【讨论】:

【参考方案2】:

看看这个链接JavaScript Timing Events和这个例子:

setTimeout(function()alert("Hello"),3000); // anonymous function

并回答问题(你的代码):

setTimeout(function(menuSlide)  , 200); // anonymous function with parameter
// menuSlide is undefined here

这段代码必须如何工作?

添加:

据我了解,您试图创建类似 http://jsfiddle.net/hcFGv/ 的东西?

【讨论】:

嘿,谢谢你的帮助,这个例子是我想要创建的,但是红条会按顺序缩小,首先是顶部,然后是第二个,然后是第三个,它们之间的延迟非常短,以产生良好的效果。 @MattStarkey 对不起,我得走了,看看这个例子:jsfiddle.net/hcFGv/1

以上是关于在每个循环中创建一个间隔的主要内容,如果未能解决你的问题,请参考以下文章

如何在 R 中创建具有特定间隔的向量?

在 RxJava 中创建同步间隔

在 AVMutableVideoComposition 中创建一个按时间间隔更改的 CATextlayer

在 UILocalNotification 中创建周间隔以及周期

在 Pandas 中创建时间范围

如何循环遍历日期范围?