我正在创建许多小表面,这些表面被添加到布局中(在这种情况下是页眉页脚布局),动画,然后需要消失。但是,我不确定添加后如何删除表面?
问问题
1071 次
2 回答
5
Kraig 在可能的情况下使用 RenderController 是正确的,但我不建议您使用它。RenderController 适用于大型布局,但不适用于小粒子等。RenderController 一次只显示一个视图。
我在 IRC 频道上询问过这个问题,结果证明我这样做的方式,感觉真的很hacky,但仍然是推荐的最直接的方法。这个想法是重新定义渲染函数以返回 null。
// surface to remove
surface.render = function(){ return null; }
而已!
只要确保你也删除了代码中的所有引用!
我经常从一个对象做它..
delete littleSurfaces['little-surface-key']
FWIW 更高级的方法是实际定义一个视图,该视图专门控制要渲染的表面。为此,您可以在自定义视图上定义渲染函数,该视图返回所谓的 renderSpec。renderSpec 是定义将被渲染的表面的哈希列表。大家指向的例子就是 Flipper 类。看看鳍状肢渲染功能..
https://github.com/Famous/views/blob/master/Flipper.js
祝你好运!
于 2014-05-13T14:26:19.480 回答
0
您可以使用RenderController对象添加/删除表面。您还可以在显示和隐藏事物时应用可选的过渡。
DOM 有时可能会欺骗您,因为 Famo.us 会重新利用和回收 DOM 元素以提高效率。
于 2014-05-13T11:35:46.333 回答