我创建了许多添加到布局的小表面(在这种情况下是页眉页脚布局),动画,然后需要消失。但是,我不确定一旦添加后如何移除表面?
答案 0 :(得分:5)
Kraig在可能的情况下使用RenderController是正确的,但我不建议你这样做。 RenderController适用于大型布局,而不适用于小型粒子等。 RenderController一次只显示一个视图。
我已经在IRC频道上询问了这个问题,但事实证明我这样做了,感觉很酷,但仍然是推荐的最直接的方法。我们的想法是重新定义渲染函数以返回null。
// surface to remove
surface.render = function(){ return null; }
那就是它!
请确保删除代码中的所有引用!
我经常从一个物体做到这一点..
delete littleSurfaces['little-surface-key']
FWIW更高级的方法是实际定义一个视图,该视图专门控制渲染的曲面。您可以通过在自定义视图上定义渲染函数来执行此操作,该视图返回所谓的renderSpec。 renderSpec是一个哈希列表,用于定义要渲染的曲面。每个人都指出的例子是Flipper类。看看Flippers渲染功能..
https://github.com/Famous/views/blob/master/Flipper.js
祝你好运!
答案 1 :(得分:0)
您可以使用 RenderController 对象添加/删除曲面。您还可以在显示和隐藏内容时应用可选转换。
DOM有时可能会骗你,因为Famo.us会重新利用和回收DOM Elements以提高效率。