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

全屏之后,上面再有弹框的情况下,会有点击穿透的现象 #9

Closed
szagnesc opened this issue May 8, 2018 · 5 comments

Comments

@szagnesc
Copy link

szagnesc commented May 8, 2018

在没有全屏之前,点击弹框,能操作弹框里面的表单内容。

全屏之后,最开始因为wrapper的层级太高,所以我把弹框的层级设置的比wrapper更高,弹框能出来了,但是却无法操作,鼠标点击的时候,只能点击全屏页面,无法点击全屏页面上面的那个弹框。

请问有其他方法能解决这个问题吗。

@mirari
Copy link
Owner

mirari commented May 8, 2018

最好上个例子看一下。
如果弹框元素在DOM树上不在全屏元素的子节点里,全屏时就会看不到。
比如这个例子:
https://codepen.io/mirari/pen/WJQqqR
如果可以显示,那不能操作多半是组件本身的问题,比如这个弹框组件还有一个不可见的全屏遮罩div(一般是用来实现点击别处关闭弹框这个效果的)层级比你设置的弹框层级更高。

@szagnesc
Copy link
Author

szagnesc commented May 9, 2018

嗯。我用的iview的modal弹框组件。它就是在dom树上而不是在子节点里面的。这个弹框是有一个遮罩层,可以点击别处关闭弹框,遮罩层的层级和我的弹框内容是同层级的。不过它现在就是能显示出来弹框,但是又没办法操作弹框。

@szagnesc
Copy link
Author

szagnesc commented May 9, 2018

我不知道要怎么上例子 :( 不过我的功能是将一个表格全屏,表格有个工具栏是查看和编辑功能,点击查看和编辑出来弹框。现在全屏之后点击查看,我仍然能操作那个表格,却无法操作弹出来的内容。

@szagnesc
Copy link
Author

szagnesc commented May 9, 2018

谢谢,这个问题已经解决了。我把modal放到了body外面就好了

@mirari
Copy link
Owner

mirari commented May 9, 2018

https://codepen.io/mirari/pen/XqZrbE
参考以上例子:
iview对话框组件有个transfer属性,作用是组件初始化后是否移动到body下,默认是开启的。移动到body下的弹框自然会跑到fullscreen组件以外,就无法被看到了。
你需要把这个transfer置为false,注意iview没有对这个参数实现响应,只能在初始化前定义一次,之后修改无效。

@mirari mirari closed this as completed May 9, 2018
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

2 participants