使用Om,我设置了一个我想在用户按下按钮时显示的组件。效果应该是div 从右侧滑入。在Om项目中构建这个的最佳方法是什么?
我不能做像哈克一样的事情:
(let [the-div (. js/document (.getElementById "the-div"))]
(.setAttribute dashboard "width" "500px"))
因为我认为在阴影dom中设置组件,我收到错误:Cannot read property 'style' of null
。
有人能指出我朝着实现这种效果的正确方向发展吗?程序结构或任何提示将不胜感激。
答案 0 :(得分:1)
简短的回答是指定组件中的宽度作为状态的函数,并更改状态。
std::shared_ptr
或者只是有条件地渲染它,或者使用类等。
谈到动画,让它幻灯片,事情有点棘手...... 您可以使用CSSTransitionGroup Creating animations with Clojurescript Om
就个人而言,我发现CSSTransitionGroups过于繁琐,并且更喜欢更直接的声明式方法 http://timothypratley.github.io/reanimated/#!/timothypratley.reanimated.examples 复活的基础非常简单,可以为om重新创建...它会将每个渲染的状态更新为目标,然后停止。