2021-11-07

**

js:如何反复调用某一个函数

**
在做js替换css总一下属性时,总是代码重复导致,代码量很多,很容易出错,也不利于后期的维护,所以不如写一个函数,然后让他重复执行,废话不多说,直接上代码。

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>字体旋转动画</title>
		<style type="text/css">
			*{margin: 0;padding: 0;}
			.wap{
				position: absolute;
				left: 30%;
				width: 500px;
				height: 500px;
				border: red solid 2px;
			}
			.wap font{
				position: absolute;
				margin-top: 40%;
				margin-left: 30%;
				font-size: 30px;
				opacity: 0;
				
			}
			.f2{
				left: 10%;
				/*animation: fonts 1s linear 3s 3;*/
				
			}
			.f3{`
				left: 20%;
				/*animation: fonts 1s linear 6s 3;*/
			
			}
			.f4{
				left: 30%;
				/*animation: fonts 1s linear 9s 3;*/
				
			}
			@keyframes fonts{
				from{transform: rotate(0deg);}
				to{transform: rotate(360deg);}
			}
		</style>
	</head>
	<body>
		<div class="wap">
			<font class="f f1"></font>
			<font class="f f2"></font>
			<font class="f f3"></font>
			<font class="f f4"></font>
		</div>
		<button class="bnt f">开始</button>
		<script>
			window.onload = function(){
				var font = document.querySelectorAll('.f');
				var time = 0; //定义执行的时间(毫秒)
				console.log(font[4]);
				function fontPlay(count){//执行模块
				    setTimeout(function(){
				    	font[count].style.opacity = 1;
				    	font[count].style.animation ='fonts 1s linear  3';
				    },time);
				}
				
				
				var count = 0;//定义执行的次数
				var sum = 0 定义执行的时间(毫秒)
				function repeats(){//重复执行
					w = setInterval(function(){
						console.log(count);
						fontPlay(count);
						count++;
						sum = 3000;
						time = time+3000;
						if(count==font.length-1){
							clearInterval(w);
						}
						
					},sum);
				}
				
				
				
				font[4].onclick = function(){//确认开始
					repeats();

				}
			}
		</script>
	</body>
</html>

先使用  *document.querySelectorAll* 方法获取所有类名叫 f 的标签,就会得到一个数组
然后把数组的下标都改成动态的,利用*setInterval*方法让 定义的count一直自加,
最后使用*onclick*触发开始就可以了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值