【发布时间】:2014-06-11 22:59:18
【问题描述】:
请在此处查看显示我的问题的 JSFiddle:http://jsfiddle.net/mlippy/zkH7S/
我正在尝试在列表中上下移动 div,这些 div 向上移动隐藏 div 向下移动。如果您查看小提琴,您可以单击 5 个不同颜色的框来告诉它们移动到顶部。如果单击不同位置的各种框,您将开始看到向上移动的框的 z-index 不高于向下移动的框的 z-index。如果您反复单击第三个定位框,那对我来说就是一个高质量的复制器。
角度指令 myWidget 通过在链式 addClass 和 removeClass 调用中添加/删除的类应用索引。请参阅下面和小提琴中的相反版本。
element.removeClass('moveDown').addClass('moveUp').css('top', (newValue * 45) + 'px');
我原以为这意味着浏览器将在移动到第二个之前完成第一个链式调用(依此类推)。但是在这种情况下,它似乎没有这样做。
同样在下面的指令 / 中,您将找到一个有效的解决方案,使用 $timeout 来延迟对触发转换的 css 顶部值的更改。它已被注释掉,但有 cmets 显示如何在需要更改的两个点代码中切换到解决方案。然而,这感觉像是作弊/不是正确的方法。因此这里的问题。
element.removeClass('moveDown').addClass('moveUp');
$timeout(function() {
element.css('top', (newValue * 45) + 'px');
}, 350);
这是我第一次使用 AngularJS,如果我使用不正确或者有更好的模式可以解决我的问题,请随时告诉我。
谢谢!
【问题讨论】:
标签: javascript css angularjs angularjs-directive z-index