layui(3)——内置模块弹出层

news2024/11/28 14:13:51

弹出层

 

1.基础参数

使用模块layer

layui.use('layer', function(){
  var layer = layui.layer;
  


});              
<script>
    layui.use('layer', function () {
        var layer = layui.layer;

        layer.open({
            // layer提供了5种层类型。可传入的值有:0(信息框,默认)   1(页面层)    2(iframe层)    3(加载层)     4(tips层)
            type: 0,
            title: '在线调试',
            // title: false,
            // 自定义标题区域样式,那么你可以title: ['文本', ''],数组第二项可以写任意css样式
            // title: ['在线文本', 'color:red;font-size:20px'],
            content: '配置各种参数,试试效果',
            // 目前layer内置的skin有:layui-layer-lan   layui-layer-molv  demo-class 默认
            skin: 'layui-layer-lan'
        });
    });              
</script>

参数有:

type :layer提供了5种层类型。可传入的值有:0(信息框,默认)   1(页面层)    2(iframe层)    3(加载层)     4(tips层)

title  :标题  自定义标题区域样式,那么你可以title: ['文本', ''],数组第二项可以写任意css样式

content  :内容

skin :目前layer内置的skin有:layui-layer-lan   layui-layer-molv  demo-class 默认

area : 默认:'auto',在默认状态下,layer是宽高都自适应的,但当你只想定义宽度时,你可以area: '500px',高度仍然是自适应的。当你宽高都要定义时,你可以area: ['500px', '300px']

icon : 图标

 

icon- 图标 

默认-1 无图标

icon:0

 icon:1

icon:2

icon:3

icon:4

 

icon:5

 icon:6

 

 

btn-按钮

默认:'确认'

信息框模式时,btn默认是一个确认按钮,其它层类型则默认不显示,加载层和tips层则无效。

当您只想自定义一个按钮时,你可以btn: '我知道了',当你要定义两个按钮时,你可以btn: ['yes', 'no']。当然,你也可以定义更多按钮,比如:btn: ['按钮1', '按钮2', '按钮3', …]按钮1的回调是yes,而从按钮2开始,则回调为btn2: function(){},以此类推。

<script>
    layui.use('layer', function () {
        var layer = layui.layer;

        layer.open({
            // layer提供了5种层类型。可传入的值有:0(信息框,默认)   1(页面层)    2(iframe层)    3(加载层)     4(tips层)
            type: 0,
            title: '在线调试',
            // title: false,
            // 自定义标题区域样式,那么你可以title: ['文本', ''],数组第二项可以写任意css样式
            // title: ['在线文本', 'color:red;font-size:20px'],
            content: '配置各种参数,试试效果',
            // 目前layer内置的skin有:layui-layer-lan   layui-layer-molv  demo-class 默认
            skin: 'layui-layer-molv',
            btn: ['按钮1', '按钮2', '按钮3'],
            icon: 6,
            yes: function (index, layero) {
                //按钮【按钮一】的回调
                console.log("按钮1的");
                layer.close(index);
                //return false 开启该代码 点击该按钮 不关闭
            }
            , btn2: function (index, layero) {
                //按钮【按钮二】的回调
                console.log("按钮2的");
                //return false 开启该代码 点击该按钮 不关闭
            }
            , btn3: function (index, layero) {
                //按钮【按钮三】的回调
                console.log("按钮3的");
                //return false 开启该代码 点击该按钮 不关闭
            }, cancel: function () {
                //右上角关闭回调

                //return false 开启该代码可禁止点击该按钮关闭
            }

        });
    });              
</script>

 

btnAlign - 按钮排列

类型:String,默认:r

你可以快捷定义按钮的排列位置,btnAlign的默认值为r,即右对齐。该参数可支持的赋值如下:

备注
btnAlign: 'l'按钮左对齐
btnAlign: 'c'按钮居中对齐
btnAlign: 'r'按钮右对齐。默认值,不用设置

closeBtn-关闭按钮

类型:String/Boolean,默认:1

layer提供了两种风格的关闭按钮,可通过配置12来展示,如果不显示,则closeBtn: 0

 

配置1:

 

配置2:

 

 不显示

 

shade- 遮罩

类型:String/Array/Boolean,默认:0.3

即弹层外区域。默认是0.3透明度的黑色背景('#000')。如果你想定义别的颜色,可以shade: [0.8, '#393D49'];如果你不想显示遮罩,可以shade: 0

 

shadeClose- 是否点击遮罩关闭

类型:Boolean,默认:false

如果你的shade是存在的,那么你可以设定shadeClose来控制点击弹层外区域关闭。

就是点击弹出层外面,点击后,就会关闭弹出层

time - 自动关闭所需毫秒

类型:Number,默认:0

默认不会自动关闭。当你想自动关闭时,可以time: 5000,即代表5秒后自动关闭,注意单位是毫秒(1秒=1000毫秒)

id- 用于控制弹层唯一标识

类型:String,默认:空字符

设置该值后,不管是什么类型的层,都只允许同时弹出一个。一般用于页面层和iframe层模式

anim - 弹出动画

类型:Number,默认:0

我们的出场动画全部采用CSS3。这意味着除了ie6-9,其它所有浏览器都是支持的。目前anim可支持的动画类型有0-6 如果不想显示动画,设置 anim: -1 即可。另外需要注意的是,3.0之前的版本用的是 shift 参数

备注
anim: 0平滑放大。默认
anim: 1从上掉落
anim: 2从最底部往上滑入
anim: 3从左滑入
anim: 4从左翻滚
anim: 5渐显
anim: 6抖动

yes - 确定按钮回调方法

类型:Function,默认:null

该回调携带两个参数,分别为当前层索引、当前层DOM对象。如:

layer.open({
  content: '测试回调',
  yes: function(index, layero){
    //do something
    layer.close(index); //如果设定了yes回调,需进行手工关闭
  }
});        

 

cancel - 右上角关闭按钮触发的回调

类型:Function,默认:null

该回调携带两个参数,分别为:当前层索引参数(index)、当前层的DOM对象(layero),默认会自动触发关闭。如果不想关闭,return false即可,如;

cancel: function(index, layero){ 
  if(confirm('确定要关闭么')){ //只有当点击confirm框的确定时,该层才会关闭
    layer.close(index)
  }
  return false; 
}    

 

2.内置方法

layer.ready(callback) - 初始化就绪

由于我们的layer内置了轻量级加载器,所以你根本不需要单独引入css等文件。但是加载总是需要过程的。当你在页面一打开就要执行弹层时,你最好是将弹层放入ready方法中,如:

    //页面一打开就执行弹层
    layer.ready(function(){
      layer.msg('很高兴一开场就见到你');
    });      
            

 

layer.open(options) - 原始核心方法

基本上是露脸率最高的方法,不管是使用哪种方式创建层,都是走layer.open(),创建任何类型的弹层都会返回一个当前层索引,上述的options即是基础参数,另外,该文档统一采用options作为基础参数的标识例子:

    var index = layer.open({
      content: 'test'
    });
    //拿到的index是一个重要的凭据,它是诸如layer.close(index)等方法的必传参数。       
            

layer.alert(content, options, yes) - 普通信息框

它的弹出似乎显得有些高调,一般用于对用户造成比较强烈的关注,类似系统alert,但却比alert更灵便。它的参数是自动向左补齐的。通过第二个参数,可以设定各种你所需要的基础参数,但如果你不需要的话,直接写回调即可。如

//eg1
layer.alert('只想简单的提示');        
//eg2
layer.alert('加了个图标', {icon: 1}); //这时如果你也还想执行yes回调,可以放在第三个参数中。
//eg3
layer.alert('有了回调', function(index){
  //do something
  
  layer.close(index);
});       

 

 

layer.confirm(content, options, yes, cancel) - 询问框

类似系统confirm,但却远胜confirm,另外它不是和系统的confirm一样阻塞你需要把交互的语句放在回调体中。同样的,它的参数也是自动补齐的。

 

//eg1
layer.confirm('is not?', {icon: 3, title:'提示'}, function(index){
  //do something
  
  layer.close(index);
});
//eg2
layer.confirm('is not?', function(index){
  //do something
  
  layer.close(index);
});       

layer.msg(content, options, end) - 提示框

我们在源码中用了相对较大的篇幅来定制了这个msg,目的是想将其打造成露脸率最高的提示框。而事实上我的确也在大量地使用它。因为它简单,而且足够得自觉,它不仅占据很少的面积,而且默认还会3秒后自动消失所有这一切都决定了我对msg的爱。因此我赋予了它许多可能在外形方面,它坚持简陋的变化,在作用方面,它坚持零用户操作。而且它的参数也是自动补齐的。

 

//eg1
layer.msg('只想弱弱提示');
//eg2
layer.msg('有表情地提示', {icon: 6}); 
//eg3
layer.msg('关闭后想做些什么', function(){
  //do something
}); 
//eg
layer.msg('同上', {
  icon: 1,
  time: 2000 //2秒关闭(如果不配置,默认是3秒)
}, function(){
  //do something
});   

 

 

layer.load(icon, options) - 加载层

type:3的深度定制。load并不需要你传太多的参数,但如果你不喜欢默认的加载风格,你还有选择空间。icon支持传入0-2如果是0,无需传。另外特别注意一点:load默认是不会自动关闭的,因为你一般会在ajax回调体中关闭它。

//eg1
var index = layer.load();
//eg2
var index = layer.load(1); //换了种风格
//eg3
var index = layer.load(2, {time: 10*1000}); //又换了种风格,并且设定最长等待10秒 
//关闭
layer.close(index);     

 

 

layer.close(index) - 关闭指定层

关于它似乎没有太多介绍的必要,唯一让你疑惑的,可能就是这个index了吧。事实上它非常容易得到。


    //当你想关闭当前页的某个层时
    var index = layer.open();
    var index = layer.alert();
    var index = layer.load();
    var index = layer.tips();
    //正如你看到的,每一种弹层调用方式,都会返回一个index
    layer.close(index); //此时你只需要把获得的index,轻轻地赋予layer.close即可
     
    //如果你想关闭最新弹出的层,直接获取layer.index即可
    layer.close(layer.index); //它获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的
     
    //当你在iframe页面关闭自身时
    var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
    parent.layer.close(index); //再执行关闭 
     
    //关闭后的回调(layui 2.6.5、layer 3.4.0 新增)
    layer.close(index, function(){
      //do something
    });  

layer.closeAll(type) - 关闭所有层

如果你很懒,你不想去获取index你只想关闭。那么closeAll真的可以帮上你。如果你不指向层类型的话,它会销毁掉当前页所有的layer层。当然,如果你只想关闭某个类型的层,那么你可以

layer.closeAll(); //疯狂模式,关闭所有层
layer.closeAll('dialog'); //关闭信息框
layer.closeAll('page'); //关闭所有页面层
layer.closeAll('iframe'); //关闭所有的iframe层
layer.closeAll('loading'); //关闭加载层
layer.closeAll('tips'); //关闭所有的tips层    
 
//关闭后的回调(layui 2.6.5、layer 3.4.0 新增)
layer.closeAll('loading', function(){ //关闭 loading 并执行回调
  //do something
}); 
layer.closeAll(function(){ //关闭所有层并执行回调
  //do something
}); 

 

还有些不常用
参考layer弹层组件开发文档 - Layui

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/620265.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

极简操作!跟着官方教程,下载并使用汉化版Figma!

随着云端协作设计工具的发展&#xff0c;Figma 作为一款基于云端的国外云端协作工具&#xff0c;尽管无需下载即可在线使用&#xff0c;但在国内却常常遇到加载缓慢、需要刷新重进的问题。此外&#xff0c;Figma 在实际使用过程中&#xff0c;常常需要搭配其他软件或第三方插件…

vue3+element plus,使用分页total修改成中文

vue3element plus&#xff0c;使用分页total修改成中文 使用element plus的分页功能 el-pagination 的时候&#xff0c;total属性显示是英文 这是我建的一个新项目&#xff0c;总数显示的Total 1000 我们的需求是显示中文&#xff0c;共 1000 条 这个就很尴尬&#xff0c;组件…

JAVA基础,区别于C++

JAVA 基础 1. 数据类型 字节型 byte 1 字节 -128~127 短整型 short 2 字节 -32768~32767 整型 int 4 字节 -2147483648~2147483647 长整型 long 8 字节 -9223372036854775808L~92…

初学Nginx要掌握哪些概念?

文章目录 为什么要使用Nginx&#xff1f;什么是Nginx&#xff1f;Nginx的作用&#xff1f;反向代理负载均衡动静分离 为什么要使用Nginx&#xff1f; 小公司项目刚刚上线的时候&#xff0c;并发量小&#xff0c;用户使用的少&#xff0c;所以在低并发的情况下&#xff0c;一个…

iNotes(WebMail)中的附件显示

大家好&#xff0c;才是真的好。 1995年Domino R4/4.5中加入了HTTP功能&#xff0c;从此便支持从用户从Web浏览器上查看邮件.一开始称之为Domino Web Access&#xff0c;后来更名为IBM Lotus iNotes&#xff0c;简称iNotes&#xff0c; 对于不熟悉Notes/Domino的人来说&#…

达梦数据库dblink测试(DM-ORACLE19c及DM8-DM8)

目录 DM与DM创建DBLINK. 3 一、配置203服务器... 3 1、主服务器203开启mal服务... 3 2、主服务器203配置dmmal.ini文件... 3 3、重启203数据库... 4 二、配置200服务器... 4 三、创建dblink. 4 DM与Oracle数据库创建dblink. 5 一、DM服务器&#xff1a;... 6 1、初始…

祝愿莘莘学子高考顺利!Good luck on your Gaokao!

《登科后》 唐孟郊 昔日龌龊不足夸&#xff0c;今朝放荡思无涯。 春风得意马蹄疾&#xff0c;一日看尽长安花。 Gone are all my past woes! What more have I to say? My body and my mind enjoy their fill today. Successful, faster runs my horse in vernal breeze;…

ArrayList 的底层原理和源码分析

tip&#xff1a;作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 推荐&#xff1a;体系化学习Java&#xff08;Java面试专题&#xff09; 文章目录 一、简介二、…

Cookie Session

第一章 会话技术 1.1 什么是会话 web会话可简单理解为&#xff1a;用户开一个浏览器&#xff0c;访问某一个web网站&#xff0c;在这个网站点击多个超链接&#xff0c;访问服务器多个web资源&#xff0c;然后关闭浏览器&#xff0c;整个过程称之为一个会话. 它是指浏览器和服…

URL到页面: 探索网页加载的神秘过程

当我们从浏览器的地址栏输入 URL, 按下回车, 再到最后出现需要的网页界面, 这中间究竟发生了什么, 接下来就一步步进行解析. 主要是如下过程: 输入网址DNS 解析客户端发送 HTPP 请求建立 TCP 连接服务器处理请求, 计算响应, 返回响应浏览器渲染页面关闭连接 本篇中只是概述整…

AUTOSAR-OS的调度机制-调度表(没理解透,继续更新)

什么是调度表&#xff1a; 1. 调度表由一系列按时间先后顺序排序的终结点组成&#xff0c;其中每个终结点都有自己的任务&#xff0c;有的终结点可能是激活一系列的任务&#xff0c;有的是设置一系列的事件&#xff0c;还有的可能是既激活一系列的任务又设置一系列的事件。 调…

数据结构之庖丁解牛八大排序算法,附动图说明过程(上)

目录 一、排序的概念以及应用 二、常见排序算法的实现 1.插入排序 1.1直接插入排序 b.实现直接插入排序 1.2希尔排序&#xff08;缩小增量排序&#xff09; 2.选择排序 2.1直接选择排序 2.2堆排序 3.交换排序 3.1冒泡排序 一、排序的概念以及应用 1.排序的概念 所谓排序&#x…

Mysql数据库--修改root密码的几种方法(忘记密码知道密码)

Mysql数据库--修改root密码的几种方法&#xff08;忘记密码&知道密码&#xff09; &#x1f53b;一、知道密码情况--修改root密码⛳ 1.1 方式1&#xff1a;alter 命令修改⛳ 1.2 方式2&#xff1a;set password命令修改 &#x1f53b;二、忘记密码情况-修改root密码⛳ 2.1 …

华为OD机试真题 Java 实现【找车位】【2023 B卷 100分】,附详细解题思路

一、题目描述 停车场有一横排车位&#xff0c;0代表没有停车&#xff0c;1代表有车。至少停了一辆车在车位上&#xff0c;也至少有一个空位没有停车。 为了防剐蹭&#xff0c;需为停车人找到一个车位&#xff0c;使得距停车人的车最近的车辆的距离是最大的&#xff0c;返回此…

打造高质量视频,创造视觉奇观!Camtasia 2023为你升级!

嘿&#xff0c;伙计&#xff01; 在这个全新版本中&#xff0c;我们迎来了焕然一新的动画控制和更简化的特效制作流程&#xff0c;让创作变得更高效。 不仅如此&#xff0c;全新的背景去除和动画光标功能也让视频拥有全新的视觉体验。让我们先谈谈光标&#xff0c;这个细节或…

计算机视觉:风格迁移

风格迁移 本节将介绍如何使用卷积神经网络&#xff0c;自动将一个图像中的风格应用在另一图像之上&#xff0c;即风格迁移&#xff08;style transfer&#xff09; (Gatys et al., 2016)。 这里我们需要两张输入图像&#xff1a;一张是内容图像&#xff0c;另一张是风格图像。…

Mac使用DBeaver连接达梦数据库

Mac使用DBeaver连接达梦数据库 下载达梦驱动包 达梦数据库 在下载页面随便选择一个系统并下载下来。 下载下来的是zip的压缩包解压出来就是一个ISO文件&#xff0c;然后我们打开ISO文件进入目录&#xff1a;/dameng/source/drivers/jdbc 进入目录后找到这几个驱动包&#x…

Vue 2和Vue 3路由Router创建的区别简记(在main.js文件中引入的区别和router的js文件中创建语法的区别)

Vue 2和Vue 3路由Router创建的区别即Router3.0和Router4.0的创建区别简记 1、版本的搭配&#xff1a; Vue 2到Vue 3的改版升级&#xff0c;同样的带来Vue Router的升级。创建Vue项目之后&#xff0c;我们可以在package.json文件中看到&#xff0c;Vue 2创建的项目往往是与Vue…

C++ | 拷贝文件

C拷贝文件 文章目录 C拷贝文件ANSI-C-WAYPOSIX-WAY (K&R use this in "The C programming language", more low-level)KISS-C-Streambuffer-WAYCOPY-ALGORITHM-C-WAYOWN-BUFFER-C-WAYLINUX-WAY理智的方式C 17Reference欢迎关注公众号【三戒纪元】 列举了几种拷贝…

nestjs超详细从零到零点五详细入门项目搭建过程

nestjs超详细从零到零点五详细入门项目搭建过程 项目完整地址github&#xff0c;修复了一些swagger文档接口&#xff0c;传参显示问题 从零到有搭建一个完整的后台管理系统项目 涉及到的知识 controller控制器provider提供者module模块middleware中间件filter过滤器pipe管道…