LuLu UI Edge版中文文档 » 静态控件之文本框

文档 Github➹

Overlay 覆盖层

安装与调用

如果只是单纯的静态展示,可以直接引入:

<link rel="stylesheet" href="https://qidian.gtimg.com/lulu/hope/ui/Overlay/index.css">

快捷语法和交互能力要想生效,还需要引入对应的组件 JS,如下所示:

<script type="module" src="https://qidian.gtimg.com/lulu/hope/ui/Overlay/index.js"></script>

或者:

<script type="module">
    import 'https://qidian.gtimg.com/lulu/hope/ui/Overlay/index.js';
</script>

基本效果

在页面中引入下面这段 HTML,就可以有覆盖层效果。

<ui-overlay open></ui-overlay>
<button id="b0" type="primary" is="ui-button"
    >载入 &lt;overlay&gt; 元素
</button>
b0.addEventListener('click', function () {
    document.body.insertAdjacentHTML('beforeend', '<ui-overlay mode="remove" open></ui-overlay>');
});

覆盖层基本效果不依赖与 JS,但是,站在实际开发的角度,推荐引入对应的组件 JS,让 <ui-overlay> 元素变成真正的自定义元素,以支持各种行为和方法。

这些行为包括点击覆盖层会自动隐藏,如果希望点击覆盖层不会隐藏,则可以使用 mode 属性进行重置。

<ui-overlay mode="custom" open></ui-overlay>

然后开发人员自己对覆盖层通过 open 属性进行隐藏设置。

overlay.removeAttribute('open');
// 或者
overlay.open = false;

样式设置

改变透明度

覆盖层默认采用了 40% 透明度的黑色,如果希望改变透明度值,可以使用 opacity 属性进行设置。

<ui-overlay opacity=".7" open></ui-overlay>

改变覆盖颜色

可以使用 color 属性重置覆盖层的颜色,此时 opacity 属性会失效。

<ui-overlay color="#f00a" open></ui-overlay>

淡入淡出

设置 fade 属性可以让覆盖层有淡入淡出效果。

<ui-overlay fade></ui-overlay>

滚动锁定

设置 touch="none" 可以让触摸覆盖层的时候,背后的内容不会发生滚动。

<ui-overlay touch="none"></ui-overlay>

装载内容

<ui-overlay> 支持载入内容,默认水平垂直对齐。

<ui-overlay open>
    <!-- 这里显示嵌入内容 -->           
</ui-overlay>
<button id="b4" type="primary" is="ui-button">嵌入内容</button>

<ui-overlay id="lay">
    <div class="wrap">
        <ui-loading></ui-loading>
    </div>
</ui-overlay>
.wrap {
    width: 4rem; height: 4rem;
    background-color: #fff;
    display: grid;
    place-items: center;
    border-radius: var(--ui-radius);
}
b4.addEventListener('click', function () {
    lay.open = true;
});

Overlay 语法

可以使用下面的语法直接创建 <ui-overlay> 元素到页面中。

let overlay = new Overlay(options);
new Overlay({
    opacity: '80%'
});

其中 options 是可选参数,支持的参数值见下表。

参数名 默认值 释义
open true 覆盖层是否显示
opacity 0.4 黑色半透明度值,支持百分比值,例如 '80%'
color rgba(0,0,0,opacity) 覆盖层颜色。
fade true 显示隐藏的时候是否使用动画效果
mode 'remove' 覆盖层模式,支持 'hide'、'remove'、'custom' 等值。

如果值是 'hide',则点击浮层会隐藏当前浮层元素;

如果值是 'remove',则点击浮层会移除当前浮层元素;

如果值是 'custom',则点击浮层没有任何变化;

touch 'none' 是否禁止滚动,属性值为 'none' 的时候可以锁定滚动

可以看到,Overlay 实例方法默认开启的动画支持,以及元素隐藏采用的是移除节点实现的,这个是和默认的 <ui-overlay> 元素元素是有区别的。

属性和方法

<ui-overlay> 元素支持的属性和上面的 new Overlay(options) 中的可选参数是一致的,区别在于部分属性的默认值。

支持的 HTML 属性

参数名 默认值 释义
open false 覆盖层是否显示
opacity 0.4 黑色半透明度值,支持百分比值,例如 '80%'
color rgba(0,0,0,opacity) 覆盖层颜色,支持任意合法颜色值,包括 CSS 变量
fade false 显示隐藏的时候是否使用动画效果
mode 'hide' 同 Overlay 方法中的 mode 参数
touch - 是否禁止滚动,属性值为 'none' 的时候可以锁定滚动,默认不锁定
<ui-overlay opacity=".7" mode="remove" touch="none" fade open></ui-overlay>

支持的方法

支持 show()hide()remove() 三个方法。

方法名 释义
show() 显示覆盖层,即使覆盖层从文档移除,只要在内存中,依然可以显示
hide() 隐藏浮层元素,浮层元素依然在文档流之中
remove() 移除浮层元素,浮层元素从文档中移除
本页贡献者:

zhangxinxu