- 当前 Bug 的表现(可附上截图)
- 预期表现
按钮是固定定位于屏幕上的,video组件只是整个信息流的一部分,希望的是页面滚动到video组件与按钮重合的时候,按钮在video组件上方;
按钮采用了cover-view,并且也是在video后渲染,在IOS上表现没有问题,但是在安卓上不行,尝试了几个不同的安卓机(小米 note3,华为荣耀8,乐视),都不能正常的显示
- 复现路径
- 提供一个最简复现 Demo
<view class='payBox {{isOpen==1?"show":"hide"}}' wx:for="{{details.payList}}" wx:key="*this"> <view class='item' wx:if="{{item.genre == 'video'}}"> <view class='itemVideo' wx:if="{{sharePayShow ? !sharePayShow : shareWinShow ? !shareWinShow : !canvasShow}}"> <video src='{{item.url}}'></video> </view> </view> </view> <cover-view class='shareBtn {{useropenid==openid?"show":"hide"}}' bindtap='shareHandle'>分享</cover-view> |
刚才又重新测试了一下,如果把video组件放到循环外就不会出问题,在循环内就会遮挡cover-view
cover-view跟video是原生组件,层级是后插入的再上面,你这里的video有通过wx:if来控制,当变成true就是重新创建了,这时video的层级会比之前就已经创建好的cover-view的层级高
所以这里建议你在改变video的时候,cover-view可以通过wx:if从false到true重新创建一下,后续会支持z-index来控制
问题解决没有 我也遇到了这种问题 !
“cover-view可以通过wx:if从false到true重新创建一下”
这个怎么重建的?直接wx:if={{state}} 然后改变state状态?
看一下黄思程的回答吧
我弄好了, 反正说到底必须考虑cover 的加载顺序! cover的层级按照先后顺序来的!
谢谢大佬了!
你好,目前是已经解决了吗?
将cover-view放到video的组件内试试?
还没有解决,在具体一点就是不能请求数据,如果循环的数据开始就在data里面就不会有问题;
我这里业务上不能把cover-view放到video组件中去,因为在同一个页面我可能会有好几个video组件(就像在公众号文章里又很多张图片一样),但是只能又一个按钮
现在是请求不了数据还是cover-view显示问题呢?
cover-view的显示问题呀,这个显示问题出现的条件video出现在循环中,更具体的条件是循环的数据不是一开始就存在于data中;
如果循环的数据一开始就存在于data中,那么就不会出现这个显示问题;