定时器功能:

定时器功能是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. uniapp微信小程序解析详情页的四种方法

    一.用微信文档提供的RICH-TEXT 官方文档:微信文档rich-text 这种是直接使用: <!-->content是API获取的html代码</--> <rich- ...

  2. Mathematica做数字图像处理中的ImageConvolve练习

    目录 ImageConvolve练习 original right sobel 垂直边检测 top sobel 水平边检测 通过一个平方内核的卷积使图像变平滑 类似ConstantArray[1, { ...

  3. Oracle数据库 insert 插入数据 显示问号乱码的解决办法

    一.问题描述 插入的中文数据 显示成问号(乱码),其他语言如老挝文.柬文等都一样. 二.解决方案 plsql插入oracle数据乱码问题处理起来其实很简单,因为乱码问题一般都是由于编码不一致导致的,我 ...

  4. 基于深度学习的车型识别系统(Python+清新界面+数据集)

    摘要:基于深度学习的车型识别系统用于识别不同类型的车辆,应用YOLO V5算法根据不同尺寸大小区分和检测车辆,并统计各类型数量以辅助智能交通管理.本文详细介绍车型识别系统,在介绍算法原理的同时,给出P ...

  5. SpringBoot——MVC原理

    更多内容,前往 IT-BLOG 一.SpringMVC自动配置 SpringMVC auto-configuration:SpringBoot 自动配置好了SpringMVC.以下是 SpringBo ...

  6. MarkdownStudy02DOS窗口

    打开dos窗口 开始里面win系统 win+r,输入cmd 在任意文件下,按住shift+鼠标右键点击,在此处打开PowerShell窗口 资源管理器的地址栏前面加上cmd路径 管理员身份运行 常用的 ...

  7. 好饭不怕晚,Google基于人工智能AI大语言对话模型Bard测试和API调用(Python3.10)

    谷歌(Google)作为开源过著名深度学习框架Tensorflow的超级大厂,是人工智能领域一股不可忽视的中坚力量,旗下新产品Bard已经公布测试了一段时间,毁誉参半,很多人把Google的Bard和 ...

  8. 算法题学习链路简要分析与面向 ChatGPT 编程

    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 声明:此图片由 MidJourney 生成 未经训练,不属于任何真实人物 大家好,我是小彭. 2023 开年 ...

  9. 数据挖掘决策树—R实现

    决策树 决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别.分类树(决策树)是一种十分常用的分类方法.它是一种监督学习,所谓监督学习就是给定一 ...

  10. RFS[3]: No standby redo logfiles available for thread 1

    问题描述:备库恢复DG之后,mrp进程一直是wait_for_log,主库创建数据没有正常同步,只有在切换归档的时候备库才能同步主库数据 查看主库日志,主库RFS进程提示没有可用的standby re ...