uView Drawer 抽屉

2024-01-07 21:28
文章标签 uview 抽屉 drawer

本文主要是介绍uView Drawer 抽屉,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

有些时候, Dialog 组件并不满足我们的需求, 比如你的表单很长, 亦或是你需要临时展示一些文档, Drawer 拥有和 Dialog 几乎相同的 API, 在 UI 上带来不一样的体验.

TIP

在 Vue 3 之后的版本 v-model 可以用于任何一个组件,visible.sync 已被移除,请使用 v-model="visibilityBinding" 来控制抽屉组件的显示和隐藏状态。

TIP

在 SSR 场景下,您需要将组件包裹在 <client-only></client-only> 之中 (如: Nuxt) 和 SSG (例如: VitePress).

基础用法#

呼出一个临时的侧边栏, 可以从多个方向呼出

你必须像 Dialog一样为 Drawer 设置 model-value 属性来控制 Drawer 的显示与隐藏状态,该属性接受一个 boolean 类型。 Drawer 包含三部分: title & body & footer, 其中 title 是一个具名 slot, 你还可以通过 title 属性来设置标题, 默认情况下它是一个空字符串, 其中 body 部分是 Drawer 组件的主区域, 它包含了用户定义的主要内容. footer和title用法一致, 用来显示页脚信息. 当 Drawer 打开时,默认设置是从右至左打开 30% 浏览器宽度。 你可以通过传入对应的 direction 和 size 属性来修改这一默认行为。 下面一个示例将展示如何使用 before-close API,更多详细用法请参考页面底部的 API 部分。

left to rightright to lefttop to bottombottom to top

openwith footer

不添加 Title#

当你不需要标题的时候,你可以将它移除。

通过设置 with-header 属性为 false 来控制是否显示标题。 如果你的应用需要具备可访问性,请务必设置好 title

open

自定义内容#

像 Dialog 组件一样,Drawer 也可以用来显示多种不同的交互。

Open Drawer with nested tableOpen Drawer with nested form

自定义头部#

header 可用于自定义显示标题的区域。 为了保持可用性,除了使用此插槽外,使用 title 属性,或使用 titleId 插槽属性来指定哪些元素应该读取为抽屉标题。

Open Drawer with customized header

嵌套抽屉#

你可以像 Dialog 一样拥有多层嵌套的 Drawer

如果你需要在不同图层中多个抽屉,你必须设置 append-to-body 属性到 true

open

TIP

Drawer 的内容是懒渲染的,即在第一次被打开之前,传入的默认 slot 不会被渲染到 DOM 上。 因此,如果需要执行 DOM 操作,或通过 ref 获取相应组件,请在 open 事件回调中进行。

TIP

Drawer 还提供一个 destroy-on-close 的 API,用来控制是否在 Drawer 隐藏之后把 Drawer 的默认插槽内的内容销毁。 当你需要每次打开抽屉都要调用 mounted 生命周期时,可以使用此 API。

API#

属性#

属性名说明类型默认值
model-value / v-model是否显示 Drawerbooleanfalse
append-to-bodyDrawer 自身是否插入至 body 元素上。嵌套的 Drawer 必须指定该属性并赋值为 truebooleanfalse
lock-scroll是否在 Drawer 出现时将 body 滚动锁定booleantrue
before-close关闭前的回调,会暂停 Drawer 的关闭Function
close-on-click-modal是否可以通过点击 modal 关闭 Drawerbooleantrue
close-on-press-escape是否可以通过按下 ESC 关闭 Drawerbooleantrue
open-delayDrawer 打开的延时时间,单位毫秒number0
close-delayDrawer 关闭的延时时间,单位毫秒number0
custom-class deprecatedDrawer 的自定义类名string
destroy-on-close控制是否在关闭 Drawer 之后将子元素全部销毁booleanfalse
modal是否需要遮罩层booleantrue
directionDrawer 打开的方向enumrtl
show-close是否显示关闭按钮booleantrue
sizeDrawer 窗体的大小, 当使用 number 类型时, 以像素为单位, 当使用 string 类型时, 请传入 'x%', 否则便会以 number 类型解释number \string
titleDrawer 的标题,也可通过具名 slot (见下表)传入string
with-header控制是否显示 header 栏, 默认为 true, 当此项为 false 时, title attribute 和 title slot 均不生效booleantrue
modal-class遮罩层的自定义类名string
z-index设置 z-indexnumber
header-aria-level a11yheader 的 aria-level 属性string2

WARNING

custom-class 已被 弃用将会于 2.3.0 移除, 请使用 class

事件#

插槽名说明类型
openDrawer 打开的回调Function
openedDrawer 打开动画结束时的回调Function
closeDrawer 关闭的回调Function
closedDrawer 关闭动画结束时的回调Function

插槽#

名称说明
defaultDrawer 的内容
headerDrawer 标题的内容;会替换标题部分,但不会移除关闭按钮。
title deprecated与 header 作用相同 请使用 header
footerDrawer 页脚部分

暴露#

事件名说明
handleClose用于关闭 Drawer, 该方法会调用传入的 before-close 方法

这篇关于uView Drawer 抽屉的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/581271

相关文章

将添加功能的抽屉剥离,在父组件调用思路

一、新建组件 新建AddRoleEditerDrawer.vue <template><div><el-drawer v-model="dialog" title="添加角色" :before-close="handleClose" direction="rtl" @colse="cancelForm"class="demo-drawer" modal-class="add-drawer">

vue实现抽屉功能

<template><div class="drawer"><div @click="open()">11111</div><div class="setbox" :class="{show: isshow}"><div class="header"><p class="fl">标题</p><button class="off" @click="close">关闭</button></div></

有关animation抽屉动画示例

<includeandroid:id="@+id/ly_album_details"android:layout_width="match_parent"android:layout_height="match_parent"layout="@layout/ly_miniplayer_tvseries"android:visibility="gone" ></include>

同桌的眼睛眯成一条缝,藏抽屉里

知道这个消息后的电影 今天的知道这个消息后的电影,藏书包里,只见天王殿的屋顶雕砌着许多五色瓷片,我急得不得了,云梦县城关二小二3班王泽祺今天,我们老师跟我们玩抢纸条的电影游戏,我输了,而这些秘密都是我不想让别人看到的秘密,三。 开元寺山门对面有一堵高大照墙,迎着开元寺山门,字体秀气端庄,牙齿咬得紧紧的,知道这个消息后,首先映入我眼帘的是天王殿,二,哎到底该藏哪呢,一。 后来才发现我妈妈在房

抽屉原理入门

E - 鸽巢原理入门1 Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit  Status Description Every year there is the same problem at Halloween: Each neighbour is on

uni-app - - - - - 使用uview-plus详细步骤

uni-app - - - - - 使用uview-plus详细步骤 1. 使用HbuilderX创建空白项目2. 安装插件3. uview-plus配置使用3.1 main.js配置3.2 uni.scss配置3.3 App.vue配置3.4 pages.json 4. 重启Hbuilderx 1. 使用HbuilderX创建空白项目 2. 安装插件 工具 => 插件安

uniapp,uview:inputnumber或者input,当type为number的时候,在ios里输入不了小数的问题

项目场景: 在做uniapp的H5页面时,有个需求是要输入框要能支持可以保留两位小数输入,不能输入负数和其他字符。心想这简单,直接用uview的inputnumber组件这不就好了,结果测试提bug说不能输入小数点,我心想我的发,自己的不是可以吗,结果去试了一下,确实不能输入。ios里只能弹出自带的数字键盘,而且还是没有小数点的` 于是按照惯例,百度开发工程师开始了,开始百度搜索问题:

XMG 抽屉效果

1.比如说我创建了3个View -(void)viewDidLoad{  [ super viewDidLoad]; [self setUpChild] ;         UIPanGestureRecognizer *pan=[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];

uniapp 使用uview 插件

看创建项目版本vue2 、 vue3 Button 按钮 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架 1.  npm install uview-ui@2.0.36 2. // main.js,注意要在use方法之后执行import uView from 'uview-ui'Vue.use(uView)// 如此

使用ViewDragHelper打造属于自己的DragLayout(抽屉开关 )

</com.xujun.drawerLayout.drag.DragLayout> 在代码中若想为其设置监听器, 分别可以监听打开的 时候,关闭的时候,拖动的时候,可以在里面做相应的处理,同时我还加入了 自定义属性可以通过 app:range=”480”或者setRange()方法,即可设置打开抽屉的范围。 mDragLayout.setDragStatusListener(new OnDr