一、定时器setInterval-------常用的,反复循环的

   <input type="button" value="停止" id="btn">
<script>
//定时器setInterval(参数1,参数2)
//参数1----->函数
//参数2----->事件----单位毫秒-----1000毫秒=1秒
//执行过程:页面加载完毕后,过了多少时间,执行一次函数的代码,然后又过了多少时间,又执行一次函数的代码..
//返回值是定时器的id
//清理定时器用clearInterval(id)
var timeId=setInterval(function(){
//设置了一个定时器,一秒控制台输出 "哈哈"
console.log("哈哈");
},1000)
document.getElementById("btn").onclick=function(){
//点击按钮,停止定时器,参数是要清理的定时器的id
window.clearInterval(timeId);
};
</script>

二、定时器setTimeout-------一次性的

   <input type="button" value="停止" id="btn">
<script>
//定时器setTimeout(参数1,参数2)
//参数1----->函数
//参数2----->事件----单位毫秒-----1000毫秒=1秒
//执行过程:页面加载完毕后,过了多少时间,执行一次函数的代码(只执行一次)
//返回值是定时器的id
//清理定时器用clearTimeout----虽然是一次性的定时器,但是也要清理,不然会一直占内存
var timeId = setTimeout(function () {
//设置了一个定时器,一秒控制台输出 "哈哈"
console.log("哈哈");
}, 1000)
document.getElementById("btn").onclick = function () {
//点击按钮,停止定时器,参数是要清理的定时器的id
window.clearTimeout(timeId);
};
</script>

三、案例

<!-- 例1:摇晃的图片 -->
<input type="button" value="开始" id="btn1">
<input type="button" value="停止" id="btn2">
<div id="dv">
<img src="1.png" alt="">
<img src="2.png" alt="">
</div>
<!-- 设置了一个div里面放了两张图片 -->
<script>
var timeId="";//设置这个的为了后面的清除时间能够访问到这个id
document.getElementById("btn1").onclick=function(){
//设置定时器
timeId=setInterval(function(){
var x=parseInt(Math.random()*100+1);
var y=parseInt(Math.random()*100+1);
document.getElementById("dv").style.marginLeft=x+"px";
document.getElementById("dv").style.marginTop=y+"px";
},100)
};
document.getElementById("btn2").onclick=function(){
//清除定时器
clearInterval(timeId);
};
</script>

<!-- 例2: 闪动的星星 -->
<input type="button" value="开始" id="btn1">
<input type="button" value="停止" id="btn2">
<div id="dv">
<span>☆</span>
</div>
<!-- 1.设置了一个div宽高400,背景黑色和一个span标签里放一个☆
2.特别注意,span是行内元素,如果设置成块元素,需要防止外边距塌陷,div设置overflow: hidden
3.还有一种方法就是用定位做,利用left和top的移动实现效果 -->
<script>
var timeId="";
document.getElementById("btn1").onclick=function(){
//设置定时器
timeId=setInterval(function(){
var x=parseInt(Math.random()*400+1);
var y=parseInt(Math.random()*400+1);
document.getElementById("dv").firstElementChild.style.marginLeft=x+"px";
document.getElementById("dv").firstElementChild.style.marginTop=y+"px";
},10)
};
document.getElementById("btn2").onclick=function(){
//清除定时器
clearInterval(timeId);
};
</script>

<!--例3: div背景渐变 -->
<input type="button" value="开始渐变" id="btn">
<div id="dv" style="width: 300px;height: 300px;background-color: black"></div>
<script>
document.getElementById("btn").onclick=function(){
//默认是10,不设置为1,是小数的bug,还有要写在定时器外面
var opacity=10;
//设置定时器
timeId=setInterval(function(){
//每执行一次定时器,透明度变化一次
opacity--;
//如果透明度小于0了就清除定时器
if(opacity<=0){
clearInterval(timeId);
}
//改变div的透明度
document.getElementById("dv").style.opacity=opacity/10;
},500)
};
</script>

<!-- 例4:协议强制倒计时 -->
<textarea name="" id="tt" cols="30" rows="10">协议</textarea><br>
<input type="button" value="请仔细阅读协议(5)" id="btn" disabled>
<script>
var time=5;
var timeId=setInterval(function(){
time--;
document.getElementById("btn").value="请仔细阅读协议("+time+")";
if(time<=0){
clearInterval(timeId);
document.getElementById("btn").disabled=false;
document.getElementById("btn").value="同意";
}
},1000)
</script>

 <!-- 例5:div变宽动画 -->
<input type="button" value="开始" id="btn">
<div id="dv" style="width: 100px;height: 100px;background: red;"></div>
<script>
document.getElementById("btn").onclick=function(){
var width=100;
var timeId=setInterval(function(){
width++;
if(width>=400){
clearInterval(timeId);
}
document.getElementById("dv").style.width=width+"px";
},10)
};
</script>

定时器( setInterval和 setTimeout)的更多相关文章

  1. js定时器setInterval()与setTimeout()

    js定时器setInterval()与setTimeout() 1.setTimeout(Expression,DelayTime),在DelayTime过后,将执行一次Expression,setT ...

  2. Vue中使用定时器setInterval和setTimeout

    js中定时器有两种,一个是循环执行setInterval,另一个是定时执行setTimeout 一.循环执行(setInterval) 顾名思义,循环执行就是设置一个时间间隔,每过一段时间都会执行一次 ...

  3. Jquery中使用定时器setInterval和setTimeout

    直接在ready中调用其他方法,会提示缺少对象的错误,解决方法如下: 方法1. 函数不在$(function(){....})内,setInterval第一个参数为"showAtuto&qu ...

  4. setInterval 和 setTimeout 定时器

    前端定时器 setInterval 和 setTimeout setInterval 循环执行 循环执行就是设置一个时间间隔,每过一段时间都会执行一次这个方法,直到这个定时器被销毁掉. 用法是setI ...

  5. javascript中window与document对象、setInterval与setTimeout定时器的用法与区别

    一.写在前面 本人前端菜鸟一枚,学习前端不久,学习过程中有很多概念.定义在使用时容易混淆,在此给向我一样刚踏入前端之门的童鞋们归纳一下.今天给大家分享一下js中window与document对象.se ...

  6. JavaScript SetInterval与setTimeout使用方法详解

    setTimeout和setInterval的语法相同.它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码.不过这两个函数还是有区别的 ...

  7. JS里设定延时:js中SetInterval与setTimeout用法

     js中SetInterval与setTimeout用法 JS里设定延时: 使用SetInterval和设定延时函数setTimeout 很类似.setTimeout 运用在延迟一段时间,再进行某项操 ...

  8. 关于setInterval和setTImeout中的this指向问题

    前些天在练习写一个小例子的时候用到了定时器,发现在setInterval和setTimeout中传入函数时,函数中的this会指向window对象,如下例: var num = 0; function ...

  9. setInterval 和 setTimeout

    setInterval 和 settimeout的区别 setinterval 1.会造成某些间隔会被跳过2.多个定时器之间的执行代码事假间隔比预期的小 而且 当定时器代码添加到任务队列里面没有被执行 ...

随机推荐

  1. PAT(B) 1086 就不告诉你(Java)

    题目链接:1086 就不告诉你 (15 point(s)) 题目描述 做作业的时候,邻座的小盆友问你:"五乘以七等于多少?"你应该不失礼貌地围笑着告诉他:"五十三.&qu ...

  2. C/C++中vector与list的区别

    1.vector数据结构vector和数组类似,拥有一段连续的内存空间,并且起始地址不变.因此能高效的进行随机存取,时间复杂度为o(1);但因为内存空间是连续的,所以在进行插入和删除操作时,会造成内存 ...

  3. C++动态内存常见面试题解析

           malloc/free和new/delete傻傻分不清?动态内存管理的面试题难道你了?来看这篇文章,包你全会. 1.malloc/free和new/delete的区别   (1)mall ...

  4. Scala Actor入门

    介绍 Scala的Actor类似于Java中的多线程编程.但是不同的是,Scala的Actor提供的模型与多线程有所不同.Scala的Actor尽可能地避免锁和共享状态,从而避免多线程并发时出现资源争 ...

  5. Electron-vue中通过WebAudioApi实现录音功能,并转换为mp3格式,实时监测音频设备变化

    实现以下功能: 1.检测当前音频环境,是否支持录音(WebAudio Api): 2.获取输入.输出设备列表,获取电脑默认的音频设备: 3.试音功能,通过分析录音样本数据,判断是否录到声音: 4.实时 ...

  6. java 任务定时调度(定时器)

    任务定时调度 通过Timer和Timetask,我们可以实现定时启动某个线程. java.util.Timer 在这种实现方式中,Timer类作用是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线 ...

  7. .NetCore/ .NetFramework 机制

    1.每来一个请求,会启动一个线程. 可以通过下面代码打印出来. 这个线程是主线程,如果用异步,会等待异步线程执行完毕才会返回. 这有个现象,用stmp 发邮件的时候,即使用异步,也会比较卡(选用的邮件 ...

  8. 委托、Action泛型委托、Func泛型委托、Predicate泛型委托的用法

    一.举一委托场景:天气很热,二狗子想去买瓶冰镇可乐,但是二狗子很懒,于是他想找个人代他去,于是要有个代理人. 创建代理人之前先定义委托:public delegate string BuyColaDe ...

  9. 部署Java项目到阿里云服务器(Ubuntu16.04 64位)

    生成Jar包 1.进入到项目所在的路径下,打开cmd命令控制台,使用如下命令打包项目. mvn package --前提将项目中使用的maven配置到系统的环境变量中 2.打包完成的jar包在项目目录 ...

  10. 【JUC】1.线程

    先复习一下线程的东西: Java线程的内存模型 主内存与工作内存 Java内存模型主要定义了程序中各个变量的访问规则 所有的变量都在主内存,Java堆(线程共享) 每条线程都有自己的工作内存,虚拟机栈 ...