一、定时器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-1111 Online Map (30分) 最短路+dfs

    明天就要考PAT,为了应付期末已经好久没有刷题了啊啊啊啊,今天开了一道最短路,状态不是很好 1.没有读清题目要求,或者说没有读完题目,明天一定要注意 2.vis初始化的时候从1初始化到n,应该从0开始 ...

  2. RabbitMQ集群部署、高可用和持久化

    RabbitMQ 安装和使用 1.安装依赖环境 在 http://www.rabbitmq.com/which-erlang.html 页面查看安装rabbitmq需要安装erlang对应的版本 在 ...

  3. C++开源库大全

        标准库 C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分. Standard Template Library:标准模板库 ...

  4. 十年感悟之 python之路

    本文由 简悦 SimpRead 转码, 原文地址 https://laisky.com/p/python-road/ Changelog: updated at 2019/9/6 一.概述 本文起源于 ...

  5. Python 使用gevent下载图片案例

    import urllib.request import gevent from gevent import monkey monkey.patch_all() def downloader(img_ ...

  6. OpenWrt增加软件包

    变量名含义 SECTION //包的种类 CATEGORY //显示在menuconfig的哪个目录下 SUBMENU //menuconfig子目录 TITLE //简单的介绍 DESCRIPTIO ...

  7. 【SpringMVC】参数绑定

    一.概述 1.3 参数绑定过程 1.2 @RequestParam 二.自定义绑定使用属性编辑器 2.1 使用WebDataBinder(了解) 2.2 使用WebBindingInitializer ...

  8. Mysql踩坑 自动更新的时间只允许有一个

    执行如下SQL创建表: CREATE TABLE aa ( a INT, b TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, c TIMESTAMP DEFAULT CU ...

  9. Oracle加密解密

    Oracle内部有专门的加密包,可以很方便的对内部数据进行加密(encrypt)和解密(decrypt). 介绍加密包之前,先简单说一下Oracle基本数据类型——RAW类型. RAW,用于保存位串的 ...

  10. Linux学习之四-Linux发行版及版本比较

    Linux发行版及版本比较 三大家族: Fedora是基于RHEL,CentOS,Scientific Linux, 和Oracle Linux的社区版本.相比RHEL,Fedora打包了显著的更多的 ...