layer.oad,layer.open

news/2025/1/15 14:02:03/文章来源:https://www.cnblogs.com/100ab/p/18411372

使用 layer.open() 方法结合 layer.load() 实现加载动画效果。当用户在 layer.open() 中点击确定后,关闭当前弹窗并显示加载动画,同时执行其他指定的方法。
文章目录
使用 layer.open() 方法结合 layer.load() 实现加载动画效果。当用户在 layer.open() 中点击确定后,关闭当前弹窗并显示加载动画,同时执行其他指定的方法。
一、layer.open()属性介绍
1.属性:
二、layer.load()属性介绍
1.属性
示例代码:
一、layer.open()属性介绍
1.属性:
layer.open() 是 Layui 中用于创建弹出层的方法,它接受一个对象参数,可以包含以下属性:

type:弹出层类型,可选值有 1(信息框,默认值)、2(页面层)、3(iframe层)、4(加载层)和 5(tips层)。
title:弹出层标题,可以是String类型或者false(不显示标题)。
content:弹出层的内容,可以是String、jQuery对象或者DOM元素。
area:弹出层宽高,可以是String类型,如 '500px',也可以是数组,如['500px', '300px']。默认值为'auto',即自适应大小。
offset:弹出层位置,可以是String类型,如 '100px',也可以是数组,如['100px', '50px']。默认值为'auto',即居中显示。
shade:遮罩层,可以是Boolean类型或者数组,如[0.8, '#393D49'],分别表示遮罩层透明度和颜色。默认值为0.3,颜色为'#000'。
shadeClose:是否点击遮罩层关闭弹出层,可以是Boolean类型或者String类型,如'true'或'false'。默认值为false。
closeBtn:关闭按钮,可以是Number类型,如1表示只显示关闭按钮,或者是2表示同时显示标题栏右侧的关闭按钮和最小化按钮。也可以是false表示不显示关闭按钮。默认值为1。
maxmin:最大化和最小化按钮,可以是Boolean类型,表示是否显示最大化和最小化按钮。默认值为false。
anim:弹出层动画,可以是Number类型,表示弹出层的动画类型,或者是数组,如[0, 300],表示动画类型和动画时间。默认值为0,即没有动画效果。
id:弹出层的唯一id,可以是String类型。
btn:弹出层的按钮组,可以是String类型,如'确定',也可以是数组,如['确定', '取消']。默认值为'确定'。
btnAlign:弹出层按钮组的对齐方式,可以是String类型,有'r'(居右,默认值)、'c'(居中)和'l'(居左)三种取值。
yes:弹出层确定按钮回调函数,可以是Function类型。
btn2:弹出层取消按钮回调函数,可以是Function类型。
cancel:弹出层关闭按钮回调函数,可以是Function类型。
scrollbar:是否允许浏览器出现滚动条,可以是Boolean类型。默认值为true。
maxWidth:弹出层最大宽度,可以是String类型,如'500px'。
maxHeight:弹出层最大高度,可以是String类型,如'500px'。
resize:弹出层是否允许拉伸,可以是Boolean类型。默认值为true。
move:弹出层是否允许拖拽,可以是Boolean类型。默认值为true。
二、layer.load()属性介绍
1.属性
layer.load() 是 Layui 中用于显示加载层的方法,它接受一个对象参数,可以包含以下属性:

type:加载层类型,可以为0(默认风格)或1(自定义风格)。
shade:遮罩层,可以为Boolean类型或者数组,如0.3或[0.3, '#000'],分别表示遮罩层透明度和颜色。
shadeClose:是否点击遮罩层关闭加载层,可以为Boolean类型或者String类型,如'true'或'false'。默认值为false。
fixed:是否固定在可视区域,可以为Boolean类型。默认值为true。
anim:加载层动画,可以为Number类型,表示加载层的动画类型。默认值为0,即没有动画效果。
content:加载层的内容,可以为String类型或者数组,如['数据加载中', 'color:#fff'],分别表示加载层的文本和文本颜色。
time:自动关闭加载层的时间,可以为Number类型,单位为毫秒。默认值为0,即不自动关闭。
success:加载层弹出后的回调函数,可以为Function类型,如function(layero, index){},其中 layero 表示加载层的 DOM 对象,index 表示加载层的索引。
style:自定义加载层的样式,可以为String类型,如'background-color: #009688; color: #fff;'。
示例代码:
下面为我整理的一个使用 layer.open() 方法结合 layer.load() 实现加载动画效果。当用户在 layer.open() 中点击确定后,关闭当前弹窗并显示加载动画,同时执行其他指定的方法的案例

<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/jquery@3.7.0/dist/jquery.min.js"></script><script src="https://cdn.jsdelivr.net/npm/layui@2.8.12/dist/layui.min.js"></script><link href="https://cdn.jsdelivr.net/npm/layui@2.8.12/dist/css/layui.min.css" rel="stylesheet"><script>var data = [{FNEID: 1,FNEREASON: '生病'}, {FNEID: 2,FNEREASON: '有事'}, {FNEID: 3,FNEREASON: '逛街'}, {FNEID: 4,FNEREASON: '游戏'}, {FNEID: 5,FNEREASON: '回家'}, {FNEID: 6,FNEREASON: '嗨皮'}, {FNEID: 99,FNEREASON: '其他'}];var strInfo = "<table id='tblPatient' class='layui-table' lay-skin='line' style='500px'>";strInfo += "<colgroup><col width='20'><col width='460'></colgroup>";strInfo += "<thead><tr>";strInfo += "<td><input type='checkbox' οnclick='selAll()' id='selAllNe'></td><td>全选</td>";strInfo += "</tr></thead>";strInfo += "<tbody><tr>";for (i = 0; i < data.length; i++) {strInfo += "<tr >";strInfo += "<td><input type='checkbox' name='FNEID' value='" + data[i].FNEID + "'/></td>";if (data[i].FNEREASON == "其他") {strInfo += "<td>" + data[i].FNEREASON + (data[i].FNEID == '99' ? '&nbsp; <input id="FNEOTHER" type="text" style="width: 200px" />' : '') + "</td>";} else {strInfo += "<td OnClick=\"selectCheckbox('" + data[i].FNEID + "')\">" + data[i].FNEREASON + (data[i].FNEID == '99' ? '&nbsp; <input id="FNEOTHER" type="text" style="width: 200px" />' : '') + "</td>";}strInfo += "</tr>";}strInfo += "</tr></tbody>";strInfo += "</table>";const boolen = true;var index = layer.open({title: '请假原因列表',maxWidth: '500px',maxHeight: '200px',content: strInfo,btn: ['确定', '取消'],yes: function(index, layero) {var ids = '';$('input[name="FNEID"]:checked').each(function(index, value) {ids += $(this).val() + ',';});ids = ids.substring(0, ids.length - 1);var nother = $('#FNEOTHER').val();//当选择其他时需要填写原因if (ids.indexOf("99") != -1) {if (FNEOTHER == "" || FNEOTHER == undefined) {$.messager.alert("提示", "当选择其他时,请填写原因!");} else {if (boolen) {// 关闭弹窗layer.close(index);// 显示加载层var loadIndex = layer.load(0, {shade: [0.5, '#fff'],zIndex: layer.zIndex});// 在顶层显示加载层layer.setTop(layero);setTimeout(function() {NoNeedEntryBatch(loadIndex, Code, ids, FNEOTHER);}, 500);} else {NoNeedEntryData(ids, FNEOTHER);layer.close(layer.index);}}} else {if (ids == "") {$.messager.alert("提示", "无需录入条件不能为空!");} else {if (boolen) {// 关闭弹窗layer.close(index);// 显示加载层var loadIndex = layer.load(0, {shade: [0.5, '#fff']});// 在顶层显示加载层layer.setTop(layero);setTimeout(function() {NoNeedEntryBatch(loadIndex, ids, nother);}, 500);} else {//无需加载动画NoNeedEntryData(ids, nother);}}}},btn2: function(index, layero) {layer.close(layer.index);}});
    //全选function selAll() {if ($("input[id='selAllNe']").is(':checked')) {$("input[name='FNEID']").prop("checked", true);} else {$("input[name='FNEID']").prop("checked", false);}}function NoNeedEntryBatch(layerindex, ids, nother) {//......此处省略代码var rowData = {"a": 1,"b": 2,"c": 3};$.ajax({data: {//封装的方法ajaxMethod: 'NoNeedEntryBatch',rowData: JSON.stringify(rowData),ids: ids,nother: nother},type: 'post',dataType: 'json',cache: false,async: false,success: function(data) {//成功后关闭加载等待layer.close(layerindex);if (data != null) {if (data.length > 0) {var filterdata = data.filter(function(value, index, self) {return value !== true;});if (filterdata.length == 0) {$.messager.alert('提示', "请假成功!");} else {$.messager.alert('提示', "请假失败!");}//此处刷新列表代码省略} else {$.messager.alert('提示', "请假失败!");}}},error: function(err) {console.log(1);layer.close(layerindex);console.log(err);}});}//其他方法,与NoNeedEntryBatch雷同function NoNeedEntryData(ids, nother) {}
</script>
</head> <body> </body>

在上述代码中,我们使用了 layer.open() 方法创建了一个弹窗,并在点击确定按钮时执行指定的方法。其中,layer.load() 方法在确定按钮被点击后被调用,用于显示加载动画效果。这个方法会创建一个遮罩层和显示加载图标的层。

我们这边重点说明下这个使用加载动画,使用setTimeout()调用其他方法执行,为什么要使用 setTimeout() 呢?这是因为 JavaScript 是单线程执行的,如果不使用 setTimeout() 函数,可能会导致弹窗和加载动画效果同时被执行,从而导致加载动画效果无法完全显示或者被其他操作遮挡。使用 setTimeout() 函数可以让加载动画效果有足够的时间被完全显示在用户界面中,同时不会影响其他操作的执行。我们只需要给0.5秒等待即可。

有需要的小伙伴可以打开vscode创建一个html进行测试,效果图如下:

勾选之后点击确定,这边加载一下便消失了,是因为我的ajax方法无法调用通,可以写一个能执行的ajax方法,此处省略…

以上就是使用 layer.open() 方法结合 layer.load() 实现加载动画效果。当用户在 layer.open() 中点击确定后,关闭当前弹窗并显示加载动画,同时执行其他指定的方法。介绍,如有错误,还请指正。
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/weixin_42064877/article/details/132045744

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue3项目部署到Github

此教程适应于以webpack,vue-cli,vite等脚手架构建的vue项目。当然,vue2和vue3都是可以滴。1. 前提:你的代码库已经提交到Github上 如果没有的话,请到GitHub上新建仓库,并把你本地的项目提交到GitHub上新建的仓库里。 具体方法,可以参考我的博客 Git使用记录 - 持续更新 …

[极客大挑战 2019]LoveSQL 1

启动靶机作者不建议使用sqlmap我们这里就进行手工注入 用万能口令登录 admin or 1 =1# ,详情见上文(https://www.cnblogs.com/m1saka1/p/18411197) 登录成功获得用户名和密码,发现密码并没有卵用,只能换思路利用账号密码的回显页面进行sql注入爆破数据库 由于网站自动转义,…

Go日志管理库zap

一、zap介绍 在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 1.能够将事件记录到文件中,而不是应用程序控制台。 2.日志切割-能够根据文件大小、时间或间隔等来切割日志文件。 3.支持不同的日志级别。例如INFO,DEBUG,ERROR等。 4.能够打印基本信息,…

深度神经网络DNN、RNN、RCNN及多种机器学习金融交易策略研究|附数据代码

全文链接:https://tecdat.cn/?p=37668 原文出处:拓端数据部落公众号 分析师:Aijun Zhang 在当今的金融领域,量化交易正凭借其科学性和高效性逐渐成为主流投资方式之一。随着大数据技术的蓬勃发展,量化交易借助先进的数学模型和计算机分析能力,摒弃了人的主观判断,通过…

第一次个人作业

这个作业属于哪个课程 班级的链接这个作业要求在哪里 作业要求的链接这个作业的目标 实现论文查重算法,并对代码进行性能分析、单元测试,使用PSP表GitHub链接 一、PSP表PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)Planning 计划 15 20Estimate 估…

mybatis exists 中使用代替in关键字

使用场景,in适合数据量小的时候,exists适合数据量大的时候。<if test="torqueRecordPageDTO.vinList != null and torqueRecordPageDTO.vinList.size >0">and exists (select 1 from (<foreach collection="torqueRecordPageDTO.vinList" it…

图与网络——TSP问题精解

旅行商问题(Travelling Salesman Problem, TSP)是组合优化领域中的经典问题之一。TSP的概念最早可以追溯到18世纪,瑞士数学家欧拉在解决柯尼斯堡七桥问题时首次提出了关于图中遍历的问题。不过,作为一个优化问题,TSP在19世纪才开始形成系统的研究。1920年代,TSP被德国数学…

[NLP/AIGC] 大语言模型:零一万物

1 概述:零一万物 - 首款开源中英双语大模型 公司背景公司名称:零一万物(01.AI) 创始人:李开复博士(知名投资人、创新工场董事长兼CEO)产品介绍产品名称:Yi 系列大模型Yi-6B:数据参数量为60亿的双语(英文/中文)开源模型 Yi-34B:数据参数量为340亿的双语(英文/中文)…

jackson 原生反序列化触发 getter 方法

jackson 原生反序列化触发 getter 方法jackson的POJONode方法可以任意调用getterjackson序列化会任意调用getter分析 jackson 序列化会调用任意 getter 方法,jackson 反序列化也会任意调用 getter ,这两个都不需要多说什么了,在前面的 jackson 反序列化中的 TemplatesImpl 链…

urllib发送get请求_中文传参问题

GET请求是HTTP协议中的一种基本方法,当需要在GET请求中传递中文参数时需要额外对中文进行编码(英文不需要),因为url中只能包含ascii字符。 可以使用urllib.parser.urlencode()或urllib.parse.quote()方法对中文转码。 详细查官方文档: https://docs.python.org/3.12/libra…

jackson 反序列化学习

jackson 反序列化学习 jackson 介绍 Jackson 是一个用于处理 JSON 数据的开源 Java 库。Spring MVC 的默认 json 解析器便是 Jackson。 Jackson 优点很多。 Jackson 所依赖的 jar 包较少,简单易用。与其他 Java 的 json 的框架 Gson 等相比, Jackson 解析大的 json 文件速度比…

LeetCode算法—递归

纵有疾风起;人生不言弃!一:递归 1、定义:函数直接或者间接的调用自己 2、四个要素 (1)接受的参数 (2)返回的值 (3)终止条件 (4)如何拆解 二:LeetCode 509 斐波那契数列 def func(n):if n<2:return nelse:return func(n-1)+func(n-2)n=int(input()) print(func(…