在每个循环中创建一个间隔
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以上是关于在每个循环中创建一个间隔的主要内容,如果未能解决你的问题,请参考以下文章
在 AVMutableVideoComposition 中创建一个按时间间隔更改的 CATextlayer