• cover-view
  • cover-image

    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 上编辑此页面!