H5使用spin.js实现正在加载中动画

          正在加载中...,这个需求还是很常见的,不管是app还是h5都需要,否则网络不顺畅的情况下,用户都不知道到底提交了没有,会出现多次点击的情况,spin.js是一个开源的第三方进度展示js组件,官网地址:spin.js,github开源地址:GitHub - fgnass/spin.js: A spinning activity indicator,目前将近10000颗星星,可以自定义样式,还是挺受欢迎的。在他们的官网还可以设置样式,实时看效果,之前我从他们的官网引入js:http://spin.js.org/spin.js,发现页面上一直无法展示正在加载中的进度条。发现无法new Spiner()对象。不知道为什么,后面网上下载了一份spin.min.js后,可以了,我把spin.min.js放百度网盘供大家下载。 百度网盘 请输入提取码 提取码:kbma。好,下面给出测试页面代码:

          

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>spin.js测试</title>
<meta name="viewport"
	content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<!--原版压缩spin.js-->
<script type="text/javascript" src="./static/js/spin.min.js"></script>
<script type="text/javascript" src="./static/js/jquery2.1.1.min.js"></script>
<link href="css/index.css" rel="stylesheet" type="text/css" />
<style rel="stylesheet" type="text/css">
#mask {
	display: none;
	height: 100%;
	width: 100%;
	position: fixed;
	*position: absolute;
	*height: 1380px;
	background: black;
	top: 0;
	left: 0;
	opacity: 0.6;
}
</style>
<script type="text/javascript">
	//opts 可从网站在线制作 http://spin.js.org/
	var opts = {
		//innerImage: {url: '../img/logo.png', width: 56, height: 56 }, //内部图片            
		lines : 13, // 花瓣数目
		length : 20, // 花瓣长度
		width : 10, // 花瓣宽度
		radius : 30, // 花瓣距中心半径
		corners : 1, // 花瓣圆滑度 (0-1)
		rotate : 0, // 花瓣旋转角度
		direction : 1, // 花瓣旋转方向 1: 顺时针, -1: 逆时针
		color : '#FFF', // 花瓣颜色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
		position : 'relative', // element position
		progress : true, // show progress tracker
		progressTop : 0, // offset top for progress tracker
		progressLeft : 0 // offset left for progress tracker
	};

	var spinner = new Spinner(opts);

	$(document).ready(function() {
		$("#btnRequest").bind("click", function() {
			ajaxRequestData();
		})
	})

	function ajaxRequestData() {
		$.ajax({
			type : "POST",
			timeout : 10000,
			dataType : "text",
			url : "你的后台接口请求地址",
			beforeSend : function() {
				//异步请求时spinner出现
				$("#firstDiv").text("");
				var target = $("#firstDiv").get(0);
				spinner.spin(target);
				//添加蒙板,避免多次点击提交按钮
				$("#mask").css("display", "block");
				//进度                   
				//spinner.setProgress(i, 20);
			},
			success : function(msg) {
				$("#firstDiv").text(msg);
				//关闭spinner  
				spinner.spin();
				//关闭蒙板
				$("#mask").css("display", "none");
			},
			error : function(e, jqxhr, settings, exception) {
				$("#firstDiv").text("请求发生错误...");
				//关闭spinner  
				spinner.spin();
				//关闭蒙板
				$("#mask").css("display", "none");
			}
		})
	}
</script>
</head>
<body>

	<div></div>

	<div id="firstDiv"></div>
	<div id="secondDiv">
		<input id="btnRequest" type="button" value="请求数据" />
	</div>



	<div id="mask"></div>
</body>
</html>

效果如下:

H5使用spin.js实现正在加载中动画

 

上一篇:关于机顶盒H5页面开发


下一篇:Linux grep log文件及find命令学习