这篇文章主要介绍了js的setInterval方法的用法以及示例,非常的有用,这里推荐给小伙伴们。 

  setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。
  setinterval()用法

  setInterval(code,millisec[,"lang"])

  后面就两个参数code是你的js代码,millisec为时间间隔,以毫秒计

  案例一:滚动条的控制

        <script type="text/javascript">
var t = setInterval(function(){
window.scrollBy(0,20);
console.log(document.body.scrollTop);
if(document.body.scrollTop || document.documentElement.scrollTop >= 100){
clearInterval(t);
}
}, 1000);
</script>

  案例二:页面显示时间

<html>
<head>
<meta charset="UTF-8">
<title>setInterval案例</title>
</head>
<body style="height: 2000px">
<input type="text" name="clock" id="clock" value="" style="width: 500px;"/>
<button id="stop" onclick="timer=window.clearInterval(timer)">停止时间函数</button>
<script type="text/javascript">
function clock(){
var t = new Date();
document.getElementById('clock').value = t;
}
var timer = setInterval(clock, 50);
var stop = document.getElementById('stop');
stop.onclick = function(){
clearInterval(timer);
}
</script>
</body>
</html>

  案例三:

            function show(){
console.log("每隔一秒我就会显示一次");
}
var sh;
sh=setInterval(show,1000); clearInterval(sh);

  案例四:类似于广告弹窗的效果;

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>setInterval案例</title>
</head>
<style type="text/css">
#content{
position:relative;
height: 500px;
width: 500px;
background-color: #666;
}
#one{
position: absolute;
top: 0px;
left: 0px;
height: 100px;
width: 100px;
background-color: red;
font-size: 50px;
line-height: 50px;
text-align: right;
color: #fff;
}
</style>
<body>
<div id="content">
<div id="one"><div id="close">X</div></div>
</div>
<p>距离国庆节还有</p>
<script>
var content = document.getElementById('content');
var one = document.getElementById('one');
var close = document.getElementById('close');
var x=0;
var y=0;
var xs=10;
var ys=10;
function scroll(){
x += xs;
y += ys;
if(x >= content.offsetWidth-one.offsetWidth || x <= 0){
xs = -1 * xs;
}
if(y >= content.offsetHeight-one.offsetHeight || y<=0){
ys = -1 * ys;
}
one.style.left = x + 'px';
one.style.top = y + 'px';
}
var dt = setInterval(scroll, 100);
one.onmouseover = function(){
clearInterval(dt);
};
one.onmouseout = function(){
dt = setInterval(scroll,100);
};
close.onclick = function(){
one.style.display = 'none';
}
</script>
</body>
</html>

期待!!!

  

  

几个例子弄懂JS 的setInterval的运行方式的更多相关文章

  1. 几个例子弄懂JS 的setTimeout的运行方式

                        function test() {   var a = 1;   setTimeout(function() {     alert(a);     a = 5 ...

  2. js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获

    js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获 一.总结 一句话总结:他们是描述事件触发时序问题的术语.事件捕获指的是从document到触发事件的那个节点,即自上而下的去触发事件.相反的,事件 ...

  3. 彻底弄懂JS的事件冒泡和事件捕获(不推荐阅读)

    由于搬去敌台了,好久没来博客园,今天无意中翻到有“误认子弟”的评论,这里特意做个说明. 本文中关于事件冒泡和事件捕获的描述和例子都是OK的,错就错在后面用jquery去展示了利用事件冒泡的例子有误,其 ...

  4. 一文弄懂js的执行上下文与执行上下文栈

    目录 执行上下文与执行上下文栈 变量提升与函数提升 变量提升 函数提升 变量提升与函数提升的优先级 变量提升的一道题目引出var关键字与let关键字各自的特性 执行上下文 全局执行上下文 函数(局部) ...

  5. 彻底弄懂js循环中的闭包问题

    来源:http://www.108js.com/article/article1/10177.html?id=899 第一次接触这个问题还是在我刚开始学js的时候,当时就是一头雾水,时隔一年多了,突然 ...

  6. 摘录和再编:彻底弄懂JS执行机制

    网文: https://juejin.im/post/59e85eebf265da430d571f89 并发模型和事件循环:https://developer.mozilla.org/zh-CN/do ...

  7. 彻底弄懂JS事件委托的概念和作用

    一.写在前头    接到某厂电话问什么是事件代理的时候,一开始说addEventListener,然后他说直接绑定新的元素不会报dom不存在的错误吗?然后我就混乱了,我印象中这个方法是可以绑定新节点的 ...

  8. 彻底弄懂JS原型与继承

    本文由浅到深,循序渐进的将原型与继承的抽象概念形象化,且每个知识点都搭配相应的例子,尽可能的将其通俗化,而且本文最大的优点就是:长(为了更详细嘛). 一.原型 首先,我们先说说原型,但说到原型就得从函 ...

  9. JavaScript中的this详解(彻底弄懂js中的this用法)!

    要想学好js,那么其中那些特别令人混淆迷惑的知识点,就一定要弄清楚.this关键字就是其中让初学者比较迷惑的知识点之一,不过灵活运用this可以提升代码的性能和复用性,那么今天我就和大家一起来了解th ...

随机推荐

  1. js高级程序设计

    defer 异步脚本,脚本延迟到文档完全被解析和显示之后再执行.只对外部脚本文件有效.按顺序执行脚本.但在实际情况下,并不一定会按照顺序执行最好只有一个延迟脚本.支持H5的浏览器会忽略给脚本设置 de ...

  2. CCF-CSP 第三题字符串整理(模拟大法好)

    URL映射 规则的相邻两项之间用‘/’分开,所以我们先把所有项分开,然后依次把两个字符串的对应项匹配即可. 分离字符串这里用字符串流(stringstream)处理,先把所有的‘/’变为空格,然后一个 ...

  3. 剑指offer错题记录

    错误重点: 1. 传递vector参数时,如果调用函数改变了vector的内容,一定一定要&,传引用保持一致 旋转数组的最小数字:有重复数字情况,二分查找照样搞.情况考虑要周全,当a[mid] ...

  4. lvs - mask标记

    将两个服务绑定在一个集群服务中 如何将两种请求绑定在一个集群中通过一个director来调度, 这里需要iptable工具配合实现.首先在prerouting链上做一个标记,通过标记来调度 起两个服务 ...

  5. hbase0.94.11版本和hbase1.4.9版本的benchamark区别

    1.起初使用ycsb对hbase进行benchmark,分别在100%写的情况下检测写性能:在100%读的情况下检测读的性能.实验数据如下: 2.新版本的habse写性能竟然不如老版本.!!!.于是我 ...

  6. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

  7. 在mybatis中调用存储过程的时候,不能加工语句

    select count(0) from ({call pkg_business.P_ZZS_LYFPHJSKJQK ('2018-04')}) 这是错误的.

  8. hdu1202解题报告

    #include<stdio.h>int main(){    int n,i;    double sum,s,p,sum1;    while(scanf("%d" ...

  9. Remmarguts' Date POJ - 2449 (A*搜索|k短路)

    "Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. ...

  10. Git 日常工作中使用的命令记录

    前言   这篇文章主要是介绍我在使用Git中的有一些忘记了,但是很重要的命令. 20190424 Git 历史信息 username 和 email 更改 git config alias.chang ...