ElementUI中的奇技淫巧

admin11个月前笔记119

ElementUI的世界中,不仅有基础的组件和功能,还有一些让你眼前一亮、*得不能再*的高级技巧和窍门。本文将揭示这些技巧,让你在前端开发的舞台上独领风骚。无论你是一个勇敢的创新者还是一个喜欢调皮捣蛋的开发者,这些技巧都将让你的ElementUI应用更加酷炫和有趣!

直接进入正题

el-scrollbar滚动条

参数说明类型可选值
native是否采用原生滚动。即只是隐藏原生滚动条,但并没有使用自定义的滚动条)Boolean-
wrapStyle容器样式Object-
wrapClass容器样式名Object-
viewClass展示视图的样式名Object-
viewStyle展示视图的样式Object-
noresize容器大小是否不可变。如果 container 尺寸不会发生变化,最好设置它可以优化性能Boolean-
tag渲染容器的标签view容器用那种标签渲染,默认为divString-

自定义滚动条的原理

image.png

warp:滚动的可显示区域,滚动内容就是在这个区域中滚动;

view:实际的滚动内容,超出warp可显示区域的内容将被隐藏;

track:滚动条的滚动滑块;

thumb:上下滚动的轨迹。

image.png


管理弹出层的z-indexPopupManager

ElementUI的弹出层在元素定位上,都有两种实现方式,分别是:

  • append-to-body:此模式下,弹出层会被放在<body>元素上,通过position: fixed定位,配合动态的topleft属性,完成弹出元素的定位。

  • append-to-body:此模式下,弹出层通过position: absolute定位,配合其父元素position: relative来完成弹出元素的定位。

在大多数情况下,ElementUI都是默认使用append-to-body,因为非append-to-body存在严重副作用,只有迫不得已的情况下才需要使用。

具体有什么副作用,可以把你们的理解打在评论区。

ElementUI弹出层的核心实现机制: 只要让新出现的弹出层,永远比之前所有弹出层的层级要高,就不会有新弹层旧弹层遮盖的事情发生。

PopupManager:为弹出层提供获取实例、注册、注销等各种能力,但其最重要的能力,是提供了z-index的层级管理能力。

ElementUI为其内置了一个弹出层z-index基数(2000),但可以进行修改。

修改弹出层的`z-index`从3000开始递增 Vue.use(Element, {zIndex: 3000})

image.png实战:一个更灵活的全屏组件


众所周知,浏览器是有官方的全屏API的:Element.requestFullscreen(),它可以让一个元素立刻铺满视窗,并且置于所有元素之上。官方全屏是设定层级高于一切,那些append-to-body的弹窗,无论z-index多高,也绝对不会被显示出来。而那些非append-to-body模式的弹出层,确实会在某些业务场景不符合要求。

符合ElementUI层级标准的全屏组件

和浏览器官方API实现全屏的思路基本一致,但不同的地方在于:

  • 官方全屏会默认置顶,z-index无限大;

  • 封装的全屏组件,z-index符合PopupManager管家的规范。

示例代码

image.png

万能弹出组件:vue-popper

ElementUI中的大部分弹出层都是基于vue-popper组件来实现的。比如selectdata-pickercascaderdropdownpopvertooltip等。

如何使用vue-popper

通常来说,它的主要用法是混入(mixins)

可以参考ElementUI select-dropdown中对它的具体使用。

实战:完全自定义的弹出层

  1. 引入vue-popper,在模板中引入该组件,并定义一个弹出层元素,一个定位元素。

image.png

  1. vue-popper实例指定弹出层定位层

image.png

  1. 通过控制vue-popperprops.value来控制是否弹出。

image.png


通过掌握这些高级技巧和窍门,你可以更好地定制和优化ElementUI应用程序,提供更出色的用户体验和更灵活的界面交互。

相关文章

网络地址转换(NAT)的报文跟踪

网络地址转换(NAT)的报文跟踪

这是有关网络地址转换network address translation(NAT)的系列文章中的第一篇。这一部分将展示如何使用 iptables/nftables 报文跟踪功能来定位 NAT 相关的...

Linux环境变量配置全攻略

Linux环境变量配置在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法。下面所有例子的环境说明如下:系统:Ubuntu 14.0用户名:uusama需要配置MySQL环...

香港虚拟银行开户攻略:一小时搞定ZA BANK、livi理慧银行、天星银行、蚂蚁银行

香港虚拟银行开户攻略:一小时搞定ZA BANK、livi理慧银行、天星银行、蚂蚁银行

10月中旬去了一趟香港,主要是为了激活香港招商永隆银行账户,顺便申请了几家虚拟银行:ZA BANK、livi理慧银行、天星银行、蚂蚁银行,全程手机APP操作,大约花了一个小时的时间。本文会介绍这几家虚...

高并发场景下如何优化服务器的性能?

高并发场景下如何优化服务器的性能?

写在前面最近,有小伙伴在群里提问:Linux系统怎么设置tcp_nodelay参数?也有小伙伴说问我。那今天,我们就来根据这个问题来聊聊在高并发场景下如何优化服务器的性能这个话题。其实,tcp_nod...

Linux开机流程详解:BIOS->MBR->GRUB->Kernel

Linux开机流程详解:BIOS->MBR->GRUB->Kernel

概述Linux是一种自由和开放源代码的类UNIX操作系统。该操作系统的内核由林纳斯·托瓦兹在1991年10月5日首次发布。在加上用户空间的应用程序之后,成为Linux操作系统。Linux是自由软件和开...

git命令入门到精通

git命令入门到精通

设置用户信息这应该是安装完 git 的第一步。我们将添加用户信息 (用户名和邮箱),所以当我们提交代码时,会产生带有用户信息的提交信息,这使得跟踪提交过程变得更容易。要添加用户信息,命令是 ...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。