前端---js(自学笔记28)(定时调用)以及定时练习图片自动切换、延时调用

定时调用:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			
			window.onload = function(){
				
				//获取count
				var count = document.getElementById("count");
				
				//使count中的内容,自动切换
				/*
				 * JS的程序的执行速度是非常非常快的
				 * 	如果希望一段程序,可以每间隔一段时间执行一次,可以使用定时调用
				 */
				/*for(var i=0 ; i<10000 ; i++){
					count.innerHTML = i;
					
					alert("hello");
				}*/
				
				/*
				 * setInterval()
				 * 	- 定时调用
				 * 	- 可以将一个函数,每隔一段时间执行一次
				 * 	- 参数:
				 * 		1.回调函数,该函数会每隔一段时间被调用一次
				 * 		2.每次调用间隔的时间,单位是毫秒
				 * 
				 * 	- 返回值:
				 * 		返回一个Number类型的数据
				 * 		这个数字用来作为定时器的唯一标识
				 */
				var num = 1;
				
				var timer = setInterval(function(){
					
					count.innerHTML = num++;
					
					if(num == 11){
						//关闭定时器
						clearInterval(timer);
					}
					
				},1000);
				
				//console.log(timer);
				
				//clearInterval()可以用来关闭一个定时器
				//方法中需要一个定时器的标识作为参数,这样将关闭标识对应的定时器
				//clearInterval(timer);
				
			};
			
			
		</script>
	</head>
	<body>
		<h1 id="count"></h1>
	</body>
</html>

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript">
			window.onload =function(){
				/**
				 * 目标:图片自动切换
				 * **/
				//获取图片
				var img = document.getElementById('img');
				//获取图片地址
				//为了使得图片地址可以更改,需要写一个数组
				var imgArr =['img/1.jpeg','img/2.jpeg','img/3.jpeg','img/4.png','img/5.jpeg','img/6.jpeg','img/7.jpeg','img/8.jpeg','img/9.jpeg',]
				//但是这样的话imgArr[3]是写死的
				//img.src=imgArr[3]	
				//创建一个index保存索引
				var index = 0;
				//
				var timer;
				//获取按钮事件
				var btn =document.getElementById('btn');
				btn.onclick = function(){
					/**
					 * 目前,我们每点击一次按钮,就会开启一个定时器
					 * 点击多次就会开启多个定时器,这就导致图片的切换速度过快
					 * 并且我们只能关闭最后一次开启的定时器
					 * 在开启之前,就需要当前元素的其他定时器关闭
					 * 
					 * **/
					clearInterval(timer)
					//开启定时器--自动切换图片
				timer = setInterval(function(){
					index++;
					//但是这里有个问题是当index++大于了索引数,将不会出现图片,所以这里需要修改使得图片链接起来
					//办法一:
//					if(index >= imgArr.length){
//						index = 0
//					}
//办法二:
					index %= imgArr.length;
					
					img.src=imgArr[index];
				},1000)
				}
				var btn1 =document.getElementById('btn1');
				btn1.onclick =function(){
					/**
					 * clearInterval()可以接受任意参数
					 * 如果参数是一个有效的定时器标识,则停止对应的定时器
					 * 如果参数不是一个有效的标识,则什么也不做
					 * **/
					clearInterval(timer)
				}
				
				
				
			}
		</script>
	</head>
	<body>
		<!--1、图片按钮导入-->
		<img id='img' src='img/1.jpeg'>
		<br />
		<br />
		<button id='btn'>开始</button>
		<button id='btn1'>结束</button>
	</body>
</html>

 

延时调用: 

延时调用:延时调用一个函数不马上执行,而是隔一段时间执行,而且只执行一次。

延时调用和定时调用的区别:定时调用,会执行多次,延时调用只执行一次

但是延时调用和定时调用可以互相调用,(延时调用多次就可以实现定时调用,定时调用执行一次就可以实行延时调用)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>延时调用</title>
		<script type="text/javascript">
			
			window.onload = function(){
				var timer = 1;
				// setInterval(function(){
				//	console.log(timer++)
				//	}, 3000)
				
				var interval = setTimeout(function(){
					console.log(timer++)
				},3000)
				clearTimeout(interval);
			}
		</script>
	</head>
	<body>
	</body>
</html>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值