【发布时间】:2013-12-27 00:12:44
【问题描述】:
我正在尝试为画廊创建一个指令,类似于 Windows 8 中的 People 磁贴。含义 - 该指令将在匹配的 2x2 或 3x3 网格内随机交换图像(取决于图片数量)。为了这个问题的简单起见,我们假设总是有足够的图像可以交换并且没有重复。
图库必须针对视觉性能进行高度优化 - 到目前为止,我已设法将其精简为单个 CSS 操作并重新渲染(而不是单个 DOM 重排!)。因此,在这里使用ng-repeat 完全是矫枉过正。
这个指令也是一个“一劳永逸”的指令。这意味着模型不会更改,并且需要将项目删除或添加到库中。所以这里真的不需要像ng-repat 这样的东西。
现在我的 HTML 看起来像这样(对于 2x2 磁贴):
<div> <!-- link $element -->
<img src="" alt="">
<img src="" alt="">
<img src="" alt="">
<img src="" alt="">
</div>
我正在尝试将画廊 DOM 添加到图块中,当然是在链接功能中。现在我正在生成图像并将它们附加到容器div:
var images = [],
$img;
for (var i = 0; i < gallerySize; i++) {
$img = $('<img>').appendTo($el);
images.push($img);
}
我的计时器循环负责交换图像。我只担心如果我的模板变得更复杂,或者如果我引入了一些需要我更改模板的 CSS 动画怎么办。感觉这正在远离“The Angular Way”。我在这里让自己很难过吗?谢谢
【问题讨论】:
标签: jquery html angularjs dom angularjs-directive