javascript - Jquery each loop + setTimeout 增量问题

标签 javascript jquery html css

http://jsfiddle.net/fxLcy/ - setTimeout 示例

http://jsfiddle.net/fxLcy/1/ - 这是没有设置超时的演示。所有元素都在正确的位置,但我真的需要延迟动画 =/

我想通过 css transition 和 setTimeout 每行放置 6 张卡片。关键是,我不能在 setTimeout 中为我的左和顶部参数使用增量,因为这个东西只是总结了我所有的增量并将元素设置到最终位置。

var self = $(this);
if (increment % 6 === 0 && increment !== 0) {
    topIncrement++;
    leftIncrement = 0;
};
setTimeout(function() {
    self.css({'left' : 10 + leftIncrement * (resizedWidth + 20),
    'top' : $("#controlPanel").height() + 10 + topIncrement * (resizedHeight + 20)});
}, increment * 500)
leftIncrement++;
increment++;

最佳答案

所以问题是变量在超时之间共享,您希望 javascript 在每个 x 和 y 位置上关闭(您希望每个 tmeout 拍摄 x/y 值的快照 - javascript 关闭)。

因此,采用上面的代码并将 setTimeout 更改为以下代码,我相信成功了(请参阅 updated fiddle)

var valuex = 10 + leftIncrement * (resizedWidth + 20);
var valuey = $("#controlPanel").height() + 10 + topIncrement * (resizedHeight + 20)
setTimeout(function() {
    self.css({'left' : valuex,
    'top' : valuey});
}, increment * 500)

关于javascript - Jquery each loop + setTimeout 增量问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21685730/

相关文章:

jquery - 更改导航菜单类并在滚动或单击时显示子树菜单

html - IE8 完全忽略 CSS 样式

javascript - 修改 DOM 元素的属性

javascript - 显示 XSL 和 PDF 导出以及下拉列表,允许我们选择要显示的行数

javascript - 在 Razor 调用我的 HTML Helper 之前调用 Javascript 函数

javascript - 有效地查找数组中对象的索引

jquery - 我怎样才能改变 footable 标题样式?

javascript - 在javascript中在图像上绘制矩形

jquery - HTML/CSS : Change content of animated flexbox-element on hover

jquery 自动完成-将数据添加到选择事件列表中