当前位置: 首页 > article >正文

JS 设置按钮的loading效果

本文是在其他博主的博客JS学习笔记 | 遮罩层Loading实现_jsp loading-CSDN博客基础上,进行实践的。

目录

一、需求

二、Jsp+css实现代码


一、需求

在springboot项目中的原始html5页面中,原本的功能是页面加载时,使用ajax向后端发送请求,后端返回的数据是一个map类型的数据。前端拿到数据之后,作为下拉框select标签的选项。

目前想要在这个基础上添加一个loading效果。使得在点击按钮后和ajax请求前显示loading效果,请求返回数据之后去掉loading效果。

二、Jsp+css实现代码

(1)首先,添加div标签,放在body下的第一个位置。

<div id="loading">
    <img src="images/loading.gif">
    <p>请稍候....</p>
</div>

其中,图片路径如下,

(2)使用css样式,给#loading设置背景颜色,覆盖整个页面。把这个div标签展示在页面中间,实现页面效果:动图下面有一行文字“请稍后”。

下面是完整的 HTML 和 CSS 代码,实现覆盖整个页面的背景色,并将 loading 显示在页面中间:

<div id="loading">
    <img src="images/loading.gif">
    <p>请稍后</p>
</div>

<style>
    #loading {
        /* 固定定位,覆盖整个页面 */
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        /* 背景色(可以调整颜色和透明度) */
        background-color: rgba(255, 255, 255, 0.8);  /* 半透明白色背景 */
        /* 确保在最上层 */
        z-index: 9999;

        /* 使用flex布局使内容居中 */
        display: flex;
        flex-direction: column;  /* 垂直排列 */
        justify-content: center; /* 垂直居中 */
        align-items: center;     /* 水平居中 */
    }

    #loading img {
        /* 图片样式 */
        display: block;
        margin-bottom: 10px;  /* 图片和文字之间的间距 */
    }

    #loading p {
        /* 文字样式 */
        margin: 0;
        color: #666;
        font-size: 14px;
    }
</style>

关键样式说明:

  • position: fixed - 固定定位
  • top: 0; left: 0; - 从页面左上角开始
  • width: 100%; height: 100%; - 占满整个页面
  • background-color - 背景色(可以根据需要调整)
  • display: flex - 使用flex布局实现居中
  • flex-direction: column - 内容垂直排列
  • justify-content: center - 垂直居中
  • align-items: center - 水平居中

你可以根据需要调整样式:

  • 背景色
  • 图片和文字的间距
  • 文字的颜色和大小
  • z-index的值(确保显示在最上层)

这样,动图和文字就会出现在页面上,且文字位于动图的下方。

(3)接下来,在前端HTML文件中编写JavaScript代码,通过ajax发送请求, 

function search() {
	//点击查询按钮重新显示loading
	$('#loading').show();
	$.ajax({
		url : "/xxx/xxx",
		type : 'GET',
		success : function(data) {
			//成功后 隐藏loading框,
			$('#loading').hide();
			// 解析数据
		},
		error : function() {
			slert("error");
		}
	})
}

(4)使用浏览器打开html文件,

页面效果如下,


http://www.kler.cn/a/454794.html

相关文章:

  • 面试题整理12----K8s中Pod创建常见错误
  • 无人零售 4G 工业无线路由器赋能自助贩卖机高效运营
  • 虚幻引擎结构之UObject
  • Vue开源项目Pure Admin二次开发:实现前后端柱状图
  • Linux:alias别名永久有效
  • MATLAB符号计算-符号表达式基础运算操作
  • 开源 SOAP over UDP
  • OpenCV相机标定与3D重建(35)计算两幅图像之间本质矩阵(Essential Matrix)的函数findEssentialMat()的使用
  • Django框架:构建高效Web应用的强大工具
  • Bash语言的语法
  • CSS(四)display和float
  • 寻找目标值 (最优解)
  • Vue 3 中父子组件的交互与弹框控制:v-model 和事件传递的实践
  • FreeType矢量字符库的介绍、交叉编译以及安装
  • T7 TensorFlow入门实战——咖啡豆识别
  • Lua语言入门 - Lua常量
  • “日常事务信息化”:个人日常事务管理系统的未来发展
  • Pico “版权校验不通过:签名非法” 处理方法?
  • 4个线程安全的单例模式
  • Python的随机数
  • 关于机器学习当中的决策树算法解析
  • 每日算法一练:剑指offer——动态规划(1)
  • 41.欠采样技术下变频不能用与跨两个nyquist的情况下
  • 探索 DC-SDK:强大的 3D 地图开发框架
  • 第1章 R语言中的并行处理入门
  • C语言技巧之有条件的累加