Loading动画--spinner+遮掩窗体

本文介绍如何使用jQuery和spin.min.js插件实现在页面上点击按钮后触发遮罩层与加载动画,并在此期间禁用页面交互,直到AJAX请求完成。文中详细展示了HTML结构与JavaScript代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现的效果:点击按钮之后触发遮掩窗体+loading动画,同时触发ajax请求,当请求成功时触发遮掩窗体+loading动画消失。ajax请求期间用户不能再对页面进行操作,点击空白处不会退出。 导入文件:jquery+bootstrap+spin.min.js

如下图:

效果图

html比较简单,主要是一个包含整个页面的div、一个触发按钮以及一个隐藏的遮掩窗体。 html:

<div id="wrapper" style="position:absolute; left:0; top:0px;height:100%;width:100%">
    <div><button id="submitBtn" type="button">点击触发遮掩窗体</button></div>
	<div class="col-md-12 column">
		<div class="modal fade" id="modal-container" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" data-backdrop="static" keyboard="false">
			<div class="modal-dialog">
				<div class="modal-content"></div>
			</div>
		</div>
	</div>
</div>

js:

$(document).ready(function(){
			//初始化spinner
			var opts = {            
	            lines: 13, // 花瓣数目
	            length: 20, // 花瓣长度
	            width: 10, // 花瓣宽度
	            radius: 30, // 花瓣距中心半径
	            corners: 1, // 花瓣圆滑度 (0-1)
	            rotate: 0, // 花瓣旋转角度
	            direction: 1, // 花瓣旋转方向 1: 顺时针, -1: 逆时针
	            color: '#5882FA', // 花瓣颜色
	            speed: 1, // 花瓣旋转速度
	            trail: 60, // 花瓣旋转时的拖影(百分比)
	            shadow: false, // 花瓣是否显示阴影
	            hwaccel: false, //spinner 是否启用硬件加速及高速旋转            
	            className: 'spinner', // spinner css 样式名称
	            zIndex: 2e9, // spinner的z轴 (默认是2000000000)
	            top: 'auto', // spinner 相对父容器Top定位 单位 px
	            left: 'auto'// spinner 相对父容器Left定位 单位 px
	        };
           var spinner = new Spinner(opts);
		   //点击按钮触发
		   $("#submitBtn").click(function(){
		   	  var target=$("#wrapper").get(0);
		      spinner.spin(target); 
			  $('#modal-container').modal({backdrop: 'static', keyboard: false});   
			  $.post("http://localhost:8080/ace_admin_template/purchase.do",function(){
					 spinner.spin();
					 $('#modal-container').modal('hide');
			   });	
		   });
		   
		   
			
});

关于加载中loading动画: 目前使用的是插件spin,用法如上。有兴趣的还可以尝试一下gif图片,在线生成loading的gif 地址:在线生成loading图片 毕竟图片 没有浏览器兼容的问题。

转载于:https://my.oschina.net/AnymoreCoder/blog/741163

### Element Plus 中 `element-loading-spinner` 属性的绑定值或自定义属性 在 Element Plus 中,`element-loading-spinner` 属性用于指定加载图标的具体样式。该属性可以绑定以下几种类型的值或变量: 1. **预定义的图标类名** 可以直接使用 Element Plus 提供的图标类名作为 `element-loading-spinner` 的值。例如,`el-icon-loading` 是一个常见的加载图标类名[^2]。通过这种方式,可以直接引用 Element Plus 图标库中的图标。 ```vue <div v-loading="true" element-loading-spinner="el-icon-loading"> Loading Content </div> ``` 2. **自定义 SVG 或字体图标类名** 如果需要更灵活的图标样式,可以通过自定义 CSS 类名来定义图标,并将其赋值给 `element-loading-spinner` 属性。例如,创建一个名为 `custom-spinner` 的类,并在其中定义图标样式[^3]。 ```vue <div v-loading="true" element-loading-spinner="custom-spinner"> Loading Content </div> ``` 自定义类名的 CSS 示例: ```css .custom-spinner { animation: spin 1s infinite linear; display: inline-block; width: 30px; height: 30px; background-image: url('path/to/custom-icon.svg'); background-size: cover; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ``` 3. **动态绑定变量** 可以通过 Vue 的数据绑定功能,将 `element-loading-spinner` 属性绑定到一个动态变量上。例如,定义一个 `spinnerType` 数据属性,并根据条件动态更改其值[^4]。 ```vue <template> <div v-loading="true" :element-loading-spinner="spinnerType"> Loading Content </div> </template> <script> export default { data() { return { spinnerType: 'el-icon-loading' }; }, methods: { changeSpinner() { this.spinnerType = 'custom-spinner'; } } }; </script> ``` 4. **结合第三方图标库** 如果需要使用其他图标库(如 FontAwesome),可以通过引入对应的图标类名并绑定到 `element-loading-spinner` 属性中。例如,使用 FontAwesome 的图标类名 `fa fa-spinner`[^3]。 ```vue <div v-loading="true" element-loading-spinner="fa fa-spinner"> Loading Content </div> ``` 需要确保在项目中正确引入了 FontAwesome 图标库。 ### 注意事项 - 动态绑定 `element-loading-spinner` 属性时,需确保绑定的值是一个有效的 CSS 类名或图标类名。 - 如果需要实现动态更新加载文案的功能,应避免直接将变量绑定到 `text` 属性中,因为这可能导致文案无法实时更新的问题[^4]。 ```vue <template> <div v-loading="true" element-loading-text="Loading..." element-loading-spinner="el-icon-loading"> Loading Content </div> </template> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值