专家。JavaScript无法产生所需的延迟效果。
从其他问题上,我因此知道,问题在于settimeout及其使用方式。但是我仍然无法理解Settimeout的工作原理。所以我将代码放在这里。由于知识目的,仅需使用Javascript。
实际上,我正在尝试清除有关 此的 概念,即javascript中的 闭包 。它们是Java的扭曲事物吗?
var objImg = new Object();
var h;
var w;
var no = 100;
while (no != 500) {
setTimeout(function () {
size(no, no);
}, 2000);
/* it's get executed once, instead of repeating with while loop
Does it leave loop in mid? I get image with 500px height and
width, but effect is not acheived.
*/
no = no + 50;
}
function size(h, w) {
var objImg = document.getElementsByName('ford').item(0);
objImg.style.height = h + 'px';
objImg.style.width = w + 'px';
}
您有两个问题:
no
调用回调时将具有循环结束的值解决方法如下:
var t = 0
while (no != 500) {
(function(no) {
t += 2000;
setTimeout(function() { size(no,no);} ,t);
})(no);
no = no+50; // could be written no += 50
}
立即执行的函数将创建一个范围,以保护的值no
。
关于以下内容的一些解释(function(no) {
:
变量的范围是
上面的代码可能被编写为
var t = 0
while (no != 500) {
(function(no2) {
t += 2000;
setTimeout(function() { size(no2,no2);} ,t);
})(no);
no += 50;
}
在这里,可能更清楚我们有两个变量:
no
,其值随每次迭代而变化,并且在调用超时时为500no2
,实际上no2
是内部匿名函数每次调用一个变量每次调用内部匿名函数时,它都会声明一个新no2
变量,其值no
在调用时(在迭代过程中)。no2
因此,此变量受到保护,并由给的回调使用setTimeout
。
direction(方向) 定义动画的方向。 Accepts Infos 'normal' 正方向动画 'reverse' 反方向动画 'alternate' 往返 anime({ targets: '.dir-normal', translateX: 250, easing: 'easeInOutSine' }); anime({ targets: '.dir-reverse'
我们经常需要重复执行一些操作。 例如,我们需要将列表中的商品逐个输出,或者运行相同的代码将数字 1 到 10 逐个输出。 循环 是一种重复运行同一代码的方法。 “while” 循环 while 循环的语法如下: while (condition) { // 代码 // 所谓的“循环体” } 当 condition 为真时,执行循环体的 code。 例如,以下将循环输出当 i < 3 时的
在处理嵌套循环的时候可以中断(break)或继续(continue)外层循环。在这类情形中,循环必须用一 些'label(标签)来注明,并且标签传递给 break/continue 语句。 #![allow(unreachable_code)] fn main() { 'outer: loop { println!("Entered the outer loop");
问题内容: 我想为迭代嵌套循环添加并发性,但是遇到了麻烦。这个示例使用sync.WaitGroup有什么问题? 我越来越 PRS AAC PRS AAC PRS AAC PRS AAC PRS AAC PRS AAC 因此,您可能会看到它跳过了两个数组的第一个元素,而仅迭代了最后一个元素。任何想法如何解决此问题? 问题答案: 这是一个关闭问题。您需要将值传递到循环内的goroutine中,如下所示
主要内容:while语句的实现,for语句Erlang是一个函数式编程语言,是需要记住所有函数的编程语言,它们不提供任何的循环结构。而函数式编程取决于一个概念叫做递归。 while语句的实现 由于在 Erlang 中没有可直接使用的 while 语句,就必须使用递归技术在 Erlang 中来实现 while 语句。 我们将努力遵循 while 循环的实现,如在其他编程语言中一样。以下是遵守一个流程: 让我们来看看如何使用递归来在 Erla
我想创建移动平台,当它的位置等于屏幕宽度时,它会改变方向,我是这样做的: 一切都是可行的,但“桶”并没有改变它的方向:(()