在js数组中不断循环并暂停
Loop through js array continually with pauses
我想在单击时连续循环一个数组。如果你可以在类开关之间的延迟中工作,则需要额外的道具:-)
我走了这么远:
// Define word
var text = "textthing";
// Define canvas
var canvas = 'section';
// Split word into parts
text.split();
// Loop over text
$(canvas).click(function() {
$.each(text, function(key, val) {
$(canvas).removeAttr('class').addClass(val);
});
});
一点也不远:-)
有什么建议吗?
以下内容将等待,直到您在var el
中单击所选元素。在本例中,var el = $('section')
将选择文档中的所有<section>...</section>
元素。
然后,它将开始循环使用cssClassNames
中的值,依次使用每个值作为所选元素的css类名。在每次类别更改之间将使用delayInMillis
的延迟。
var cssClassNames = ['c1', 'c2', 'c3'];
var el = $('section');
var delayInMillis = 1000;
// Loop over text
el.click(function() {
var i = 0;
function f() {
if( i >= cssClassNames.length ) {
i = 0;
}
var currentClass = cssClassNames[i];
i += 1;
el.removeClass().addClass(currentClass);
setTimeout(f, delayInMillis);
}
f();
});
我相信在删除类和添加类之间需要X毫秒的延迟。我不确定你是否必须把线标出来//?甚至他们完成了这项工作,但你必须有一种方法来将价值融入函数中。此外,setTimeout anon函数实际上可能不需要这些参数,但它应该会给您一个想法。
$(canvas).click(function() {
$.each(text, function(key, val) {
$(canvas).removeAttr('class')
var $canvas = $(canvas) //?
var class_val = val //?
setTimeout(function ($canvas, class_val) {
$canvas.addClass(class_val);
}, 2000);
});
});
编辑:我会这么做函数modify_element($element,class_name){$element.removeClass('class');setTimeout(函数($element){$element.addClass(类名);},1000);//删除类后1秒添加该类}
$(canvas).click(function() {
$.each(text, function(key, val) {
setTimeout(modify_element($(canvas), val),2000);
//this will loop over the elements with 2 seconds between elements
});
});
"在数组上连续循环"这听起来像是一个无限循环,我认为你不希望这样。关于暂停循环,这是可能的,你可以使用这个
相关文章:
- jQuery循环在特定位置暂停
- 使用javascript和随机暂停/超时快速循环文本
- 在js数组中不断循环并暂停
- Jquery:无限循环和暂停
- 有没有办法暂停循环,直到用户向右或向左滑动
- 在循环锁定浏览器时暂停执行(用fiddles更新)
- 在视频期间暂停 javascript 循环
- 暂停 for 循环
- jQuery:每个循环暂停直到完成
- 在补间JS中循环后暂停
- 是否可以防止引导轮播在鼠标悬停时暂停并继续自动循环
- 循环后暂停 css 精灵一秒钟
- 具有播放/暂停循环的 HTML 范围滑块
- 如何在 FOR 循环中创建暂停或延迟
- jQuery-使用嵌套的setTimeout暂停循环
- 每五次迭代后暂停循环一秒钟
- 暂停&在循环中恢复setTimeout
- 在Javascript或Jquery中进行循环暂停,直到用户输入内容,然后继续
- 为javascript循环执行实现暂停和恢复机制
- 如何在等待用户输入的同时暂停jQuery.ech()循环