javascript5 定时器功能
定时器功能:
定时器功能是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 定时器功能的更多相关文章
- Linux使用一个定时器实现设置任意数量定时器功能【转】
转自:https://www.jb51.net/article/120748.htm 为什么需要这个功能,因为大多数计算机软件时钟系统通常只能有一个时钟触发一次中断.当运行多个任务时,我们会想要多个定 ...
- laravel实现定时器功能
前记 laravel实现定时器功能有两种方法: 1. 使用 command . 2. 在闭包函数内写实现的方法. 在这里我比较推荐第一种方法,因为第一种方法把具体的实现抽离出来了,看起来简单且富有 ...
- JAVA实现定时器功能
在接口开发时,有一种开发模式叫定时器模式,可以理解为每经过一段预设的时间就会执行一次事件,而在我们的工作中,这个事件所实现的功能一般是将两个系统的数据信息进行同步,这样就实现了两个系统通过接口进行对接 ...
- 定时器_在.net core3.0 webapi中添加自定义定时器功能
前言:想在.net framework环境使用自定义定时器的话,参考我的另一篇文章:https://www.cnblogs.com/lxhbky/p/10242839.html 想在.net core ...
- TIM4定时器功能设置
一.初始化过程 /*********************************************************************** 利用TIM4定时器作为计时,每个0.1 ...
- 不用写Windows服务实现定时器功能(FluentScheduler )
MacBook Pro 只有四个 USB Type-C 接口是否错了? 一项新技术的诞生总会对已存在的事物造成冲击或影响,如果大家都害怕冲击与影响,那这个世界永远像现在不变就行了,大家都好好的,待在自 ...
- Android定时器功能实现方法
在Android开发中,定时器一般有以下3种实现方法: 1.采用Handler与线程的sleep(long)方法 2.采用Handler的postDelayed(Runnable, long)方法 3 ...
- Delphi的DLL里如何实现定时器功能?
一,首先引入“mmsystem”单元. 二,启动定时器: var MMTimerID: Integer; // 定时器ID MMTimerID := timeSetEvent(1000, 0, @Ti ...
- 【swoole】如果使用好定时器功能
swoole中提供了一个定期器的用法 $server->tick(1000, function() use ($server, $fd) { $server->send($fd, &quo ...
- MFC的DLL中实现定时器功能
方法一:创建一个线程, 反复读系统时间不就可以了? 如果定时要求不严,用Sleep就可以了.DWORD WINAPI TimerThread(LPVOID pamaram) { UINT oldTic ...
随机推荐
- 基于 Gitlab + Harbor + K8s + Kuboard 的 CI 实践
CI/CD 概念 CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法.CI/CD 的核心概念是持续集成.持续交付和持续部署.作为一种面向开发和运维团队的解决方案,CI/CD 主要 ...
- ChatGPT|一文读懂GPT-4!
前言 大家好,今天早上一早醒来,发现各大科技圈公众号平台开始刷屏OpenAI发布的新模型GPT4.0,看这个版本号就已经知道又是一大波特性的更新. 于是立马起来开始学习! GPT-4 发布视频(202 ...
- 从零开始学习 Java 系列之你为什么要学 Java?
全文大约[4000]字,不说废话,只讲可以让你学到技术.明白原理的纯干货! 在正式开始本系列教程之前,壹哥希望先用一篇文章,来扫清你学习前的认知障碍.请坚定自己的学习信念,不要半途而废浪费时间,壹哥希 ...
- Hugging News #0324: 🤖️ 黑客松结果揭晓、一键部署谷歌最新大语言模型、Gradio 新版发布,更新超多!
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- DevOps|研发效能价值如何衡量
现在很多公司都在做或者计划做研发效能,也知道研发效能工作很重要,能提高产研运同学的协同效率,提高员工的工作效率和质量,提高业务交付效率和交付质量,但是价值有多大?效率又有多高呢?因为不容易说清楚,所以 ...
- 垃圾回收之CMS、G1、ZGC对比
ZGC(The Z Garbage Collector)是JDK 11中推出的一款低延迟垃圾回收器,它的设计目标包括: 停顿时间不超过10ms: 停顿时间不会随着堆的大小,或者活跃对象的大小而增加: ...
- 人群定向SQL表
SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- Table structure for rc_throng -- ------ ...
- day01-项目介绍&功能实现
项目介绍&功能实现 1.项目介绍&环境搭建 一个以社交平台为核心的轻电商项目,功能如下: 短信登录.商户查询缓存.优惠券秒杀.达人探店.好友关注.附近的商户.用户签到.UV统计 1.1 ...
- RESTful API 为何成为顶流 API 架构风格?
作者孙毅,API7.ai 技术工程师,Apache APISIX Committer 万物互联的世界充满着各式各样的 API ,如何统筹规范 API 至关重要.RESTful API 是目前世界上最流 ...
- Django框架简单搭建增删改查页面 Django请求生命周期流程图
目录 Django框架简单搭建增删改查页面 一.前期的配置文件以及连接MySQL的基本准备 二.在数据库中准备好数据 三.将MySQL的数据展示到页面(简单认识HTML模板语法 for循环) 在Dja ...