Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dialog支持自定义zIndex #489

Open
miyakosama opened this issue Jun 29, 2015 · 6 comments
Open

Dialog支持自定义zIndex #489

miyakosama opened this issue Jun 29, 2015 · 6 comments

Comments

@miyakosama
Copy link

如题,Dialog控件支持自定义zIndex
作为控件属性或者暴露一个方法

@Justineo
Copy link
Member

补充一下,variable.less 中暴露了可以配置 z-index 的变量,但是 JS 中有的地方还是写死了 z-index 的值。在与第三方控件同时使用的时候可能会有问题,比如 UEditor 的弹层默认配置下会被 ESUI 的 Dialog 盖住。应该说不光是 Dialog,应该所有相关的控件都应该有一个类似的配置机制吧。

@otakustay
Copy link
Member

在以前,Dialog因为有一个“多个对话框存在时,点击其中一个会将其移到最上面”这一功能,所以zIndex开放出来是有破坏性的

我们确实可以用更好的逻辑来控制zIndex,比如找到所有的Dialog然后找最高的zIndex再加一些,不过开放出zIndex确实可能存在不可预期的破坏了Dialog原生行为的情况……

另外,自定义zIndex时你还想要上面说的这种功能吗?

这个内部管理的zIndex的初始值为1023,且必须全局共享同一个值,我建议把这个全局的值开放出来可配置,但不要在运行时乱改

@Justineo
Copy link
Member

是的,我的想法和你最后说的一样。改一个初始值就可以了。

@yankun01
Copy link
Contributor

如果把dialog和mask的z-index在CSS中定好。 例如:mask: 100, dialog: 101。

如果出现多个dialog时候, 在show的时候把dialog和mask元素append到body后。保证它们能够在最上面。这样不知道会不会有啥问题。

@otakustay
Copy link
Member

不太一样,Dialog的问题是,有N个同时show了的时候,点其中一个要让这个回到最上面,点另一个再让另一个到最睚同来,不是在show的时候搞的……

当然我也可以在mousedown的时候把它移掉再appendChild到最后,但这样搞不知道会不会出现啥奇怪的事。就算只考虑show,也要考虑一个对话框会多次show的问题

还有一个问题,每个Dialog有一个自己的mask,这个mask的要求是“在其它Dialog之上,在当前要显示的Dialog之下”,所以你用appendChild调整位置的逻辑会很麻烦,同时要考虑Dialogmask两个东西

@yankun01
Copy link
Contributor

yankun01 commented Jul 2, 2015

嗯,我先实验一下再说。 最好是不要去计算。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants