定时器功能:

定时器功能是window对象方法,涉及到 定时器和延时器,具体 看代码

 定时器
timer=setInterval(function (){},300)
清除定时器:
clearInterval(time1);
延时器:
setTimerout() 延时调用,不马上执行,间隔一段时间,才调用,只调用一次
清除延时器:clearTimerout()
 <script type="text/javascript">
window.onload=function () {
//seInterval()
//定时调用,可以将一个函数,没个一段被调用一次
//参数:回调函数,给函数每个一段时间被调用一次
//每次间隔时间单位毫秒级
//clearInterval();可以关闭定时器,方法中需要一个定时器的标准 var num = 1;
//获取定时器的对象
var time1 = setInterval(function () {
count.innerHTML = num++;
if (num > 100) {
clearInterval(time1);
}
}, 100);
//setTimerout() 延时调用,不马上执行,间隔一段时间,才调用,只调用一次
//clearTimerout()
var timer=setInterval(function (){
console.log(num++)
},10);
}
</script>
开启一个定时器前,先关闭一个定时器

定时器功能开发:

1 需求1 图片自动切换功能

​ 1.1 首先定义一个数组,存储图片地址;

​ 1.2 开启一个定时器,进行图片自动切换;循环切换使用到取余运算;

   <script type="text/javascript">
window.onload=function (){
var img01=document.getElementById("img01")
var btn01=document.getElementById("btn01")
var btn02=document.getElementById("btn02")
//创建一个数组
var imgArr = ["img/001.jpg", "img/002.jpg", "img/003.jpg", "img/004.png", "img/005.png", "img/006.jpg"]
var timer; var index=0;
btn01.onclick=function () {
//开启一定时器,先清除一个定时器
clearInterval(timer) setInterval(function () {
index++;
index = index % imgArr.length;
img01.src = imgArr[index];
}, 1000)
};
btn02.onclick=function (){
clearInterval(timer);
}
}
</script>

2 div控制上下移动功能;

2.1开启一个定时器,获取当前位置var oldPostion=parseInt(getStyle(obj,attr));

2.2 计算出移动后的位置 newPostion=oldPostion+speed(移动)

2.3 直接赋值给 对象obj.style[""]=newPosition+"px"

 <script type="text/javascript">
//获取对象obj的当前样式的函数
function getStyle(obj,name){
if (window.getComputedStyle){
return getComputedStyle(obj,null)[name]
}else{
//Ie8支持
return obj.currentStyle(name)
}
} function move(obj,attr,speed,target,callback){
// 参数,传递要执行obj;attr:要执行动画的样式,
// 移动速度speed;
// target:要执行到目标;
//callback :回调函数,这个函数最后执行
var current_left= parseInt(getStyle(obj,attr))
// 关闭一个定时器,
if (current_left>target){
speed=-speed
}
clearInterval(obj.timer)
//开启定时器,用来执行动画效果
obj.timer=setInterval(function () {
//涉及获取当前样式的函数功能
var oldPosition=parseInt(getStyle(obj,attr));
var newPosition=oldPosition+speed;
if (speed>0&&newPosition>target || speed<0&&newPosition<target){
newPosition=target
clearInterval(obj.timer);
callback();
}
obj.style[attr] =newPosition+ "px";
// console.log(div01.style.left);
},100); }
window.onload=function (){
var btn01= document.getElementById('btn01')
var btn02= document.getElementById('btn02')
var div01=document.getElementById('div01')
var div02=document.getElementById('div02')
// document.onkeydown=function (event){
// event=event ||window.event
// console.log(event.keyCode);
// switch (event.keyCode){
// case 37:
// move(div01,10,500);
// console.log(event.keyCode);
// break;
//
//
// case 39:
// move(div01,10,0);
// console.log(event.keyCode);
// break;
// }
// }
btn01.onclick=function (){
// move(div01,"top",10,500);
move(div01,"left",10,500,function (){ move(div02,"width",10,500,function (){
move(div02,"height",10,600,function (){
move(div02,"top",10,0,function (){
alert("执行完毕")
})
}) })
}); };
btn02.onclick=function (){
move(div01,-10,0)
}; } </script>

3 需求开发 div 用定时器控制速度;使用键盘事件控制方向

<script type="text/javascript">
window.onload=function (){
var dir=0;
var box1= document.getElementById('box1')
setInterval(function (){ var speed = 10;
switch (dir){
case 37: box1.style.left=box1.offsetLeft - speed + "px";
break;
case 38: box1.style.top=box1.offsetTop - speed + "px";
break; case 39: box1.style.left=box1.offsetLeft + speed + "px";
break;
case 40:
box1.style.top=box1.offsetTop + speed + "px";
break;
} },30)
document.onkeydown=function (event){
//浏览器兼容性问题
event=event||window.event console.log(event.keyCode)
if (event.ctrlKey){
speed=400; }
dir=event.keyCode } }
</script>

javascript5 定时器功能的更多相关文章

  1. Linux使用一个定时器实现设置任意数量定时器功能【转】

    转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...

  2. laravel实现定时器功能

    前记 laravel实现定时器功能有两种方法: 1. 使用 command . 2.   在闭包函数内写实现的方法. 在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有 ...

  3. JAVA实现定时器功能

    在接口开发时,有一种开发模式叫定时器模式,可以理解为每经过一段预设的时间就会执行一次事件,而在我们的工作中,这个事件所实现的功能一般是将两个系统的数据信息进行同步,这样就实现了两个系统通过接口进行对接 ...

  4. 定时器_在.net core3.0 webapi中添加自定义定时器功能

    前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...

  5. TIM4定时器功能设置

    一.初始化过程 /*********************************************************************** 利用TIM4定时器作为计时,每个0.1 ...

  6. 不用写Windows服务实现定时器功能(FluentScheduler )

    MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...

  7. Android定时器功能实现方法

    在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3 ...

  8. Delphi的DLL里如何实现定时器功能?

    一,首先引入“mmsystem”单元. 二,启动定时器: var MMTimerID: Integer; // 定时器ID MMTimerID := timeSetEvent(1000, 0, @Ti ...

  9. 【swoole】如果使用好定时器功能

    swoole中提供了一个定期器的用法 $server->tick(1000, function() use ($server, $fd) { $server->send($fd, &quo ...

  10. MFC的DLL中实现定时器功能

    方法一:创建一个线程, 反复读系统时间不就可以了? 如果定时要求不严,用Sleep就可以了.DWORD WINAPI TimerThread(LPVOID pamaram) { UINT oldTic ...

随机推荐

  1. 声网 X 在线自习室 同学陪伴、老师监督的在线自习是如何火出圈的?

    实时互联网像触角一样,通过情景的共享延伸开来,链接着我们彼此的线下.线上生活,形成一张不可分割的网络.随着社交直播.在线教育.视频会议成为大众生活不可或缺的一部分的同时,智能手表.智能作业灯.视频双录 ...

  2. Linux常用命令 备查

    区分关系: 有很多类型的shell,最常见的一种Shell是bash env 查看所有环境变量 用echo查看环境变量 echo $LOGNAME echo $PATH https://shimo.i ...

  3. 钛度守望者旗舰版TSG550鼠标(原相3335芯片)拆解

    鼠标整体外观 鼠标按键支柱,采用的十字形的按键柱,没有采用现在市面上多数鼠标的平面贴片形的按键柱设计,但是耐用性比一字型的按键柱会好很多. 可换微动设计,原装的是凯华GM8.0黑曼巴8000万次微动, ...

  4. PVE开启硬件显卡直通功能

    首先编辑GRUB配置文件: root@pve:~# vim /etc/default/grub root@pve:~# root@pve:~# cat /etc/default/grub # If y ...

  5. python入门教程之三编码问题

    1编码问题 Python文件中如果未指定编码,在执行过程中会出现报错: !/usr/bin/python print ("你好,世界") 以上程序执行输出结果为: 文件" ...

  6. HOOPS Exchange助力Shapr3D产品实现了“无障碍的用户体验”

    HOOPS SDK是用于3D工业软件开发的工具包,其中包括4款工具,分别是用于 读取和写入30多种CAD文件格式的HOOPS Exchange.专注于Web端工程图形渲染的HOOPS Communic ...

  7. DG:有多个备库如何切换

    问题描述:有一数据库准备进行主备switchover切换,但是有两个备库,其中最早一个备库状态已经出现GAP,第二个备库状态正常 SQL> show parameter log_archive_ ...

  8. windows10设置共享目录

    win10设置目录局域网内共享 1.右键点击文件属性,点击共享 2.选择与其共享的用户 3.点击共享,选择everyone,可以让在同一局域网下的用户访问 4.显示你的文件夹已共享 5.在同一局域网的 ...

  9. Semantic Kernel 入门系列:🥑Memory内存

    了解的运作原理之后,就可以开始使用Semantic Kernel来制作应用了. Semantic Kernel将embedding的功能封装到了Memory中,用来存储上下文信息,就好像电脑的内存一样 ...

  10. Java中方法的定义和使用

    方法的定义和使用 注意事项: 1.方法与方法之间是 平级关系 不可以嵌套定义 2.方法的位置 可以在类{}中任意位置 3.方法定义之后 之后被调用 才能被执行 4.return 关键字的作用  返回关 ...