cover-view

覆盖在原生组件上的文本视图。

小程序框架为了优化体验,部分组件如map、video、textarea、canvas通过原生控件实现,原生组件层级高于前端组件,为了能正常覆盖原生组件,设计了cover-view。

平台差异说明

5+AppH5微信小程序支付宝小程序百度小程序头条小程序
x

支持的事件:click

cover-image

覆盖在原生组件上的图片视图。

平台差异说明

5+AppH5微信小程序支付宝小程序百度小程序头条小程序
xx

属性说明

属性名类型默认值说明
srcString图标路径。支持本地路径、网络路径。不支持 base64 格式。

可覆盖的原生组件:<video><map>

支持的事件:click

不支持的 CSS

  • position: fixed
  • opacity
  • overflow
  • padding
  • linebreak
  • white-spaceTips

  • App端vue页面 cover-viewcover-image 中不支持嵌套其它组件,包括再次嵌套cover-view,仅可覆盖videomap。App端nvue页面自2.1.5起没有这些受限制。

  • App端还可以使用强大的plus.nativeObj.view绘制原生内容,参考:uni-app中使用5+界面控件plus.nativeObj.view规范
  • App端还提供了更灵活和强大的subNvue,参考原生子窗体subNvue
  • 在 video 组件中使用时,若想在全屏模式下使用cover-view,只有在微信小程序、App端的nvue页面可实现。
  • 百度小程序iOS端暂不支持一个页面有多个video时嵌套cover-view。
  • 支付宝小程序中 cover-view 不支持嵌套。示例
  1. <template>
  2. <view class="page">
  3. <video class="video" id="demoVideo" :controls="disable" :show-fullscreen-btn="disable" :show-play-btn="disable"
  4. :show-center-play-btn="disable" :enable-progress-gesture="disable" @fullscreenchange="fullscreenchange" src="https://dcloud-img.oss-cn-hangzhou.aliyuncs.com/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126.mp4">
  5. <cover-view class="controls-title">简单的自定义 controls</cover-view>
  6. <cover-image class="controls-play img" @click="play" src="../../../static/play.png"></cover-image>
  7. <cover-image class="controls-pause img" @click="pause" src="../../../static/pause.png"></cover-image>
  8. </video>
  9. </view>
  10. </template>
  11. <script>
  12. export default {
  13. data() {
  14. return {
  15. videoCtx: null,
  16. disable: false
  17. }
  18. },
  19. mounted() {
  20. this.videoCtx = uni.createVideoContext('demoVideo')
  21. },
  22. methods: {
  23. play(event) {
  24. this.videoCtx.play();
  25. uni.showToast({
  26. title: '开始播放',
  27. icon: 'none'
  28. });
  29. },
  30. pause(event) {
  31. this.videoCtx.pause();
  32. uni.showToast({
  33. title: '暂停播放',
  34. icon: 'none'
  35. });
  36. }
  37. }
  38. }
  39. </script>
  40. <style>
  41. .page {
  42. display: flex;
  43. justify-content: center;
  44. }
  45. .video {
  46. position: relative;
  47. }
  48. cover-view,
  49. cover-image {
  50. display: inline-block;
  51. }
  52. .img {
  53. position: absolute;
  54. width: 100rpx;
  55. height: 100rpx;
  56. top: 50%;
  57. margin-top: -50rpx;
  58. }
  59. .controls-play {
  60. left: 50rpx;
  61. }
  62. .controls-pause {
  63. right: 50rpx;
  64. }
  65. .controls-title {
  66. width: 100%;
  67. text-align: center;
  68. color: #FFFFFF;
  69. }
  70. </style>

发现错误?想参与编辑?在 GitHub 上编辑此页面!