小程序原生组件层级遮挡其他组件问题

Posted 雨筠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序原生组件层级遮挡其他组件问题相关的知识,希望对你有一定的参考价值。

这学习小程序中,仿做其他项目时遇到这种情况,video标签把自定义的导航栏(非小程序的tabBar),在把导航栏的z-index:9999也无济于事,这是因为video等原生组件的层级是最高的,所以无论所以页面中的其他组件无论设置 z-index 为多少,都无法盖在原生组件上(后插入的原生组件可以覆盖之前的原生组件)

好在小程序为我们提供了解决这个问题的办法,那就是cover-view和cover-image组件,可以覆盖在部分原生组件上面。这两个组件也是原生组件,但是使用限制与其他原生组件有所不同

cover-view组件里面只能嵌套cover-view和cover-image组件,嵌套其他的组件如view组件,那么view 标签的子节点树在真机上都会被忽略

文档说明:https://developers.weixin.qq.com/miniprogram/dev/component/native-component.html

使用cover-view后的效果

 

但是这样又会出现一个新问题,那就是当导航栏使用position:fixed定位,视频全屏播放的时候,导航栏会出现在视频上方,效果

解决方法

1、导航栏不使用定位

2、不使用cover-view组件,在渲染页面的时候我们使用view视频的封面,当点击播放的时候把view封面隐藏,播放视频,视频播放完毕后再把视频隐藏、封面显示,但是播放视频时还是存在开始所提到的问题

 

以上是关于小程序原生组件层级遮挡其他组件问题的主要内容,如果未能解决你的问题,请参考以下文章

uni-app之实现层级覆盖(app端覆盖原生组件)的问题

解决微信小程序inputtextarea层级过高穿透问题

解决微信小程序inputtextarea层级过高穿透问题

微信小程序原生组件层级过高的解决方法

原生组件说明 · 小程序

微信小程序开发-地图map组件上使用input组件