自定义 loading... 效果

loading.html代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>loading效果</title>
</head>
<body>	
	<script src="loading.js"></script>
	<script>
		loading();
	</script>
</body>
</html>

loading.js代码如下:

var isShowLoad = true;
function loading(){	
	// 先删除原有的
	var rmLoad = document.getElementsByClassName('load-mask');
	/*if(!!rmLoad){
		for(var i=0,len=rmLoad.length; i<len; i++){
			document.body.removeChild(rmLoad[i]);
		}
	}*/
	if(rmLoad.length>0){			
		for(var i=0,len=rmLoad.length; i<len; i++){
			document.body.removeChild(rmLoad[i]);
		}
	}
	// 创建元素	
	var loadMask = document.createElement('div');
	loadMask.classList.add('load-mask');
	loadMask.id = 'load-mask';
	document.body.appendChild(loadMask);
	// 给创建元素添加样式
	loadMask.style.position='fixed';
	loadMask.style.top='0';	
	loadMask.style.left='0';	
	loadMask.style['background-color']='rgba(0,0,0,.5)';	
	loadMask.style['z-index']='9999';	
	loadMask.style.width='100vw';	
	loadMask.style.height='100vh';
	loadMask.innerHTML = '<div style="width: 100%;height: 100%;position: relative;display:table;text-align: center;"><div style="display: table-cell;vertical-align: middle;color: #fff;font-weight: bold;"><i>loading</i><i class="spot" style="display: inline-block;width: 50px;text-align: left;">...</i></div></div>';
	var mask  = document.getElementById('load-mask');
	var spot = mask.getElementsByClassName('spot')[0];
	var spotNum = 0;
	console.log('loading...');
	var effect = {
		load: function(){
			var isLoad = isShowLoad;
			if(isLoad){
				(function(){
					// 判断点的个数是否大于3
					if(spotNum<3){ spotNum ++; }
					else{ spotNum = 0; }

					// 设置显示点的个数
					if(spotNum==1){ spot.innerText = '.'; }
					else if(spotNum==2){ spot.innerText = '..'; }
					else if(spotNum==3){ spot.innerText = '...'; }
					else{ spot.innerText = ''; }
					setTimeout(effect.load,500);
				})();
			}else{
				document.body.removeChild(mask); 
			}					
		}
	};
	effect.load();// 调用

	// setTimeout(function(){isShowLoad=false;},5000);			
}

效果如下图所示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自定义uni.showLoading的样式,您可以使用uni-app提供的API uni.showLoading()的第二个参数options来实现。在options中,您可以指定一个自定义loading组件作为显示的loading效果。以下是一个简单的示例代码: ``` //在任意vue组件中 <template> <div class="container"> <button @click="showLoading">点击显示Loading</button> </div> </template> <script> export default { methods: { showLoading() { uni.showLoading({ //自定义loading组件 custom: true, //loading组件的模板 //可根据自己的需要进行修改 template: ` <div class="my-loading"> <img src="/static/loading.gif" alt="loading"> <p>加载中...</p> </div> ` }) } } } </script> <style> /* 自定义loading组件的样式 */ .my-loading { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 10px; background-color: rgba(0,0,0,0.6); border-radius: 5px; } .my-loading img { width: 50px; height: 50px; } .my-loading p { margin-top: 10px; color: #ffffff; font-size: 14px; } </style> ``` 在上面的代码中,我们在showLoading方法中通过uni.showLoading()方法指定了一个自定义loading组件作为显示的loading效果。我们还使用了custom和template两个参数来指定自定义loading组件的样式和模板。在这个例子中,我们使用了一个图片和一个文字来展示loading效果,并使用CSS样式来进行美化。 您可以根据自己的需要进行修改自定义loading组件的样式和模板。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值