uniapp的video层级过高引起的页面展示问题
uniapp的原生组件层级过高,从而一直有黑块悬浮在页面表面,造成页面不美观。
在处理这个问题,我使用了两种方法,一是用cover-image处理播放按钮,删除按钮被黑块挡在下面的问题。
<video :src="url + qiniuNewDefuseVedio" object-fit="contain" style="width:200rpx;height: 200rpx;border-radius: 12px;position: relative;" id="defuseVideo" @play="defuseVideoPlay" v-if="isdefusevideo">
<cover-image class="add-img-del" @click="delectDefuseVideo" src="../../../static/images/delete.png"></cover-image>
</video>
二是在页面滑动的时候,由于video的层级过高,会滚动在title之上
这种情况我是使用plus.nativeObj.View,简称nview,plus.nativeObj.View官方文档,它是一个灵活的底层组件,可以通过js控制样式的原生画布,写字、贴图、做动画,它不属于dom,可盖在webview和各种原生控件上面。
createView(){
var view = new plus.nativeObj.View('head',{top:'0',left:'0',height:'65px',width:'100%'});
view.drawRect({color:'#fff'}, {top:'0px',left:'0px',width:'100%',height:'100%'});
view.drawText(' 返回', {top:'31px',left:'0px',width:'20%',height:'30px'}, {size:'14px',color:'#808080',weight:600});
// 绘制文本
// if(this.fromPage == 'details'){
view.drawText('纠纷详情', {top:'30px',left:'0px',width:'100%',height:'30px'}, {size:'15px',color:'#000',weight:600});
// }else{
// view.drawText('新建纠纷', {top:'30px',left:'0px',width:'100%',height:'30px'}, {size:'15px',color:'#000',weight:600});
// }
//返回添加事件
view.addEventListener("click", this.onclick, false);
view.show();
// plus.nativeUI.toast('创建成功');
},
onclick(){
uni.navigateBack({
delta: 1
})
var view = plus.nativeObj.View.getViewById('head');
view.close();
// plus.nativeUI.toast('销毁View控件成功');
},
h5,小程序等可以用cover-view 和cover-image方法来解决原生组件层级问题,如果是多端,那plus.nativeObj.View也不失为一个好的方法。