定時器&&定時調用&&延時調用

setInterval(回調函數,每次調用間隔時間)

返回值:返回一個Number類型的數據,用來作爲唯一標識

clearInterval關閉定時器

		<script type="text/javascript">
			window.onload = function(){
				var count = document.getElementById("count");
				//每間隔一段時間執行一次,可以使用定時調用
				/*for(var i = 0;i<10;i++){
					count.innerHTML = i;
				}*/
				//定時調用
				//1回調函數2每次間隔時間(ms)
				//返回值:返回一個Number類型的數據,
				var num = 1;
				
				var timer = setInterval(function(){
					count.innerHTML = num++;
					if(num==11){
						clearInterval(timer);
					}
				},1000);
				//關閉定時器
				//clearInterval()
			}
			
		</script>

定時切換圖片

		<script type="text/javascript">
			window.onload = function(){
				//自動切換
				var img1 = document.getElementById("img1");
				
				var imgArr = ["img/1.jpg","img/77B65B8382D22ACC8DBED7C0FA9DF602.gif","img/v2-55c82c3467fafc796cd2c2dea5c1498f.jpg"];
			
				var index = 0;//保存索引
				var timer;
				
				var btn01 = document.getElementById("btn01");
				btn01.onclick = function(){
					//每點擊一次就開啓一個定時器,點擊多次,開啓多個,導致圖片切換速度過快,並且只能關閉最後一次開啓的定時器
					//在開啓定時器之前,需要將當前的其他定時器關閉,
					clearInterval(timer);
					timer = setInterval(function(){	
					
					index++;
					//修改屬性
					/*if(index>= imgArr.length){
						index = 0;
					}*/
					index = index%imgArr.length;
					
					img1.src = imgArr[index];
				},1000);
				}
				var btn02 = document.getElementById("btn02");
				btn02.onclick = function(){
					clearInterval(timer);//可以接受任意的參數,如果參數是一個有效的定時器標識,則停止對應的標識,如果不是不進行操作
					
				}
				
			}
		</script>

使用定時調用使圖片的移動平順不卡頓

		<script type="text/javascript">
			window.onload = function(){
				var box1 = document.getElementById("box1");
				var speed = 10;	
				var dir = 0;//方向
				
				
					//開啓定時器控制控制div的移動
					setInterval(function(){
						switch(dir){
						case 37:
							box1.style.left = box1.offsetLeft - 10 +"px";
							break;
						case 38:
							box1.style.left = box1.offsetLeft + 10 +"px";
							break;
						case 39:
							box1.style.top  = box1.offsetTop - 10 +"px";
							break;
						case 40:	
							box1.style.top  = box1.offsetTop + 10 +"px";
							break;
					}
					},30);
				document.onkeydown = function(event){
					event = event  || window.event;
					
					
					if(event.ctrlKey){
						speed = 200;
					}else{
						speed = 10;
					}
					dir = event.keyCode;	
					
				};
				document.onkeyup =  function(){
					dir = 0;
				}
			};
		</script>

延時調用

		<script type="text/javascript">
			var num = 1;
			/*setInterval(function(){
				console.log(num++);
			},3000);
			*/
			//延時調用:函數不馬上執行,一段時間以後再執行 ,,只執行一次
			//延時和定時可以互相代替,
			var timer = setTimeout(function(){
				console.log("1");
			},10000);
			clearTimeout(timer);//關閉延時調用
		</script>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章