For AI agents: the complete documentation index is available at /next/zh/llms.txt, the full documentation bundle is available at /next/zh/llms-full.txt, and this page is available as Markdown at /next/zh/api/elements/built-in/overlay.md.
Lynx
  • 简体中文
  • <overlay> XElement

    <overlay> 是一个不参与页面布局的承载容器。它本身不占据任何空间,也不需要设置宽度和高度。

    <overlay>被渲染时,其内部的内容完全脱离 Lynx 文档流,被提升到 Lynx 之外的渲染层级进行展示。

    <overlay>的唯一子节点默认以屏幕尺寸作为宽高基准,推荐将其视为一个独立的绘制容器,用于承载完整的蒙层内容。

    Info

    适用场景

    • 在客户端页面中嵌入 Lynx 子模块时,可以使用<overlay>来构建弹窗,达到覆盖整个应用页面的效果。
    • 当完全使用 Lynx 来构建一整个页面时,不建议使用<overlay>,直接使用position: fixed即可构建弹窗能力。

    使用指南

    必要条件

    • <overlay>只能有一个直接子节点

    • <overlay>自身必须设置 position:fixed

    推荐用法

    • 推荐将<overlay>的唯一子节点作为 backdrop 容器:
    • 即使背景是透明的,也建议显示绘制
    • 显示设置尺寸:width: 100%; height: 100%
    • 显示创建独立的 stacking context:z-index:0
    <overlay class="overlay">
      <view class="backdrop">
        // Dialog Content
        <Dialog class="dialog-content" />
      </view>
    </overlay>
    .overlay {
      overflow: visible;
      position: fixed;
    }
    
    .backdrop {
      width: 100%;
      height: 100%;
      z-index: 0;
    }
    • 如需调整弹窗的视觉尺寸,应在 backdrop 内部点上使用 margin 等方式控制,而不是修改 backdrop 本身的尺寸
    .dialog-content {
      margin: 100px;
      position: absolute;
    }

    属性

    ios-enable-swipe-back

    iOS
    // @默认值: false
    'ios-enable-swipe-back'?: boolean;

    当覆盖层显示时,'true' 允许向右滑动关闭当前页面,'false' 则不允许。

    level

    Android
    iOS
    Desktop
    Harmony
    // @默认值: 1
    level?: 4 | 2 | 1 | 3;

    引入了层的概念,分为四个级别。层的值越大,越靠近底部。默认情况下为第一级。层按 1 到 4 的顺序排列。指定要显示的层,不受显示顺序的影响。在每个层内,按照“后进先出”的逻辑排列。覆盖层显示时无法动态调整层,只能在隐藏时进行调整。

    mode

    iOS
    // @默认值: 'window'
    mode?: string;

    指定覆盖层内容在 iOS 上的层级。window:挂载在窗口上,即应用的顶层;top:挂载在 topViewController 上;page:挂载在 UINavigationController 上;others:在客户端中自定义类名。

    visible

    Android
    iOS
    Desktop
    Harmony
    // @默认值: false
    visible?: boolean;

    控制覆盖层是否显示。

    事件

    前端可以绑定相应的事件回调来监听元素的运行时行为,如下所示。

    binddismissoverlay

    Android
    iOS
    Desktop
    Harmony
    binddismissoverlay = (e: BaseEvent) => {};

    覆盖层隐藏时的回调。

    binderror

    Android
    2.18
    binderror = (e: OverlayErrorEvent) => {};
    字段类型是否可选默认值平台起始版本描述
    errorCode字符串
    Android
    错误码:0 - 正常显示;非 0 - 无法显示,你可以尝试使用下面提到的预加载方案来适配容器以解决问题。
    errorMsg字符串
    Android
    错误信息

    触摸覆盖层时的回调

    bindoverlaytouch

    Android
    iOS
    Desktop
    bindoverlaytouch = (e: OverlayTouchEvent) => {};
    字段类型是否可选默认值平台起始版本描述
    stateOverlayTouchState
    Android
    iOS
    Desktop
    触摸状态
    x数字
    Android
    iOS
    Desktop
    相对于窗口的 x 位置,单位为 px
    y数字
    Android
    iOS
    Desktop
    相对于窗口的 y 位置,单位为 px

    触摸覆盖层时的回调

    bindrequestclose

    Android
    Desktop
    Harmony
    bindrequestclose = (e: BaseEvent) => {};

    点击返回按钮时的回调。

    bindshowoverlay

    Android
    iOS
    Desktop
    Harmony
    bindshowoverlay = (e: BaseEvent) => {};

    覆盖层显示时的回调

    兼容性

    LCD tables only load in the browser

    除非另有说明,本项目采用知识共享署名 4.0 国际许可协议进行许可,代码示例采用 Apache License 2.0 许可协议进行许可。