1
onfuns 2020-05-27 20:28:37 +08:00
层叠关系用一个自定义类样式实现不了?
|
2
ericls 2020-05-27 20:43:22 +08:00 via iPhone
reach
|
3
darrenfang 2020-05-27 21:00:32 +08:00
我写了一个基于 Material UI 的 dialog 组件:
https://github.com/darrenfang/use-material-ui-dialog 点击确定按钮时会自动关闭 dialog,所以只能显示一个 dialog,如果要显示多个 dailog 就需要改下按钮点击事件的代码了。 |
4
revalue OP @darrenfang 差不多是这个意思了。比如 Material UI 的 dialog 组件,我要控制它显示隐藏。在此基础上可以从一个 dialog 里打开另外一个 dialog
|
5
darrenfang 2020-05-27 21:08:57 +08:00 via iPhone
@revalue 我的代码里面 state 里面只保存了一个 open 变量,如果是多个 dialog 那就需要把 dialog 和它的状态关联起来存入 state 。
|
6
revalue OP @darrenfang 还有个问题,你这是函数呼出对话框。基本上很多人思路也是这样。这样的话,里面的那个 dialog 没法用 jsx 表示
如果是游戏的 dialog,层级管理比这个复杂很多。暂且不讨论这个条件下的。 |
8
darrenfang 2020-05-27 21:18:23 +08:00 via iPhone
@revalue 对话框参数里面提供了一个 element 属性,可以设置为 jsx 对象。
|
9
OSF2E 2020-05-28 13:50:05 +08:00
有浏览器兼容性要求吗?
没有的话,推荐使用 CSS-Grid-Layout,所有层可以同时挂载在容器组件上,通过设置 zIndex 属性控制层叠状态,通过 opacity/transform/visibility/display 等属性来控制各层的视觉可见性,而不用频繁修改元素树结构,同时方便添加 transition 或者 animiation 动效。 有兼容性要求,通过 CSS-Block-Layout 外加 position 等属性,降级实现。 |
10
revalue OP @OSF2E 我想依赖第三方 UI 库实现,这样整个 UI 样式统一。如果你改人家的 css,尤其是定位的,很容易出问题。也许是一个办法
这里面其实就是一个逻辑的控制,我想问下这种逻辑的控制有没有封装成 hooks 的 |