Bom 基本使用以及定时器 倒计时案例
BOM 是浏览器对象模型 它提供了独立内容而与浏览器窗口进行交互的对象,其核心对象是window 窗口加载事件
注意:window.onload 就可以吧JS代码写在页面元素的上方,因为onload是等页面内容全部加载完毕,在执行处理函数
传统方式,只能写一次,如果有多个,将以最后一个为准,覆盖之前的。addEventListener这种方式的不受影响的
1.传统的
window.onload = function(){
//获取元素
//触发事件
//执行动作
}
2.最新方式
window.addEventListener('load',function(){
//获取元素
//触发事件
//执行动作
})
//例如:
window.addEventListener('load',function(){
var btn = document.querySelector('button');
btn.addEventListener('click',function(){
alert('点击');
})
})
3.document.addEventListener('DOMContentLoaded',function(){
alert('你好')
})
load要等页面内容全部加载完毕,包含页面的dom元素,图片 flash css等等
DOMContentLoaded 等Dom元素加载完毕 不包含 图片 falsh css 等就可以执行,加载速度要load快 适用于图片比较大的网站 调整窗口大小事件
window.onresize = function(){} //只要浏览器窗口发生变化,就会触发事件
例如:
window.addEventListener('load',function(){
var div = document.querySelector('div')
window.addEventListenner('resize',function(){
if(window.innerWidth <= 800){ // innerWidth 识别屏幕的宽度
div.style.display= 'none';
}
})
}) 定时器之 setTimeout
语法格式:window.setTimeout(调用函数 ,延时事件);
注意:1.window字样可以省略,延时时间单位是毫秒,也可以省略,默认是0
2.页面中可能有很多定时器,我们可以给定时器加标识符号(起个名)
例如:
1.setTimeout(function(){
console.log('测试')
},2000); //2s执行 2.function callback() {
console.log('爆炸了')
}
setTimeout(callback,3000); // 3s 执行
var timer1 = setTimeout(callback,3000) //定义定时器的名字,多个定时器可同时执行
var timer2 = setTimeout (callback,3000) 回调函数:就是等某一件事件做完,再次调用,比如:定时器、事件对象里面的函数 停止定时器 setTimeout()
clearTimeout(要取消的定时器的函数名字)
如:clearTimeout(timer1) 定时器之setInterval
setInterval(回调函数,间隔多少毫秒);
注意:1.只要不结束,就一直执行,重复调用函数,类似永动机
2.注意事项跟setTimeout一样 清除定时clearInterval() 综合:
案例一:(功能:点击开始倒计时则开始,点击暂停倒计时则暂停)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button class="begin">开始倒计时</button>
<button class="stop">暂停倒计时</button>
<script>
//获取元素
window.addEventListener('load',function(){
var begin = document.querySelector('.begin');
var stop = document.querySelector('.stop'); //绑定开始事件
var timer=null;
begin.addEventListener('click',function(){
timer= setInterval(function() {
console.log(1)
},1000)
} )
stop.addEventListener('click',function(){
clearInterval(timer)
})
})
</script>
</body>
</html> 案例二:(模仿web页面倒计时功能)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.box {
display: flex;
width: 110px;
height: 30px ; }
.one,
.two,
.three {
margin-left: 5px;
width: 30px;
height: 30px;
background-color: black;
color: beige;
text-align: center;
line-height: 30px;
}
</style>
</head>
<body>
<div class="box">
<div class="one">1</div>
<div class="two">2</div>
<div class="three">3</div>
</div>
<script>
//思路: 1.将时间转换成秒,最新时间的秒数减去旧时间的秒数
// 2. 在将其转换成天、小时、分钟、秒数
// 3. 在利用定时器
var one = document.querySelector('.one');
var two = document.querySelector('.two');
var three = document.querySelector('.three')
setInterval(counttime,1000) function counttime(){
var iNew = new Date()
var iNow = new Date('2021-12-22 12:00:01')
var timer = Math.floor((iNow - iNew)/1000) //
var d = parseInt(timer /60 /60 /24);
one.innerHTML=d;
var h = parseInt(timer /60 /60 %24)
two.innerHTML=h;
var s = parseInt(timer %60)
three.innerHTML=s; }
</script>
</body>
</html> 时间计算公式:
var d = parseInt(timer /60 /60 /24);
var h = parseInt(timer /60 /60 %24);
var m = parseInt(timer /60 %60);
var s = parseInt(timer %60);
Bom 基本使用以及定时器 倒计时案例的更多相关文章
- 【JavaScript定时器小案例】常见的几种定时器实现的案例
[JavaScript定时器小案例]常见的几种定时器实现的案例 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 说明 在日常开发 ...
- Flutter 快速上手定时器/倒计时及实战讲解
本文微信公众号「AndroidTraveler」首发. 今天给大家讲讲 Flutter 里面定时器/倒计时的实现. 一般有两种场景: 我只需要你在指定时间结束后回调告诉我.回调只需要一次. 我需要你在 ...
- 从零开始学 Web 之 BOM(二)定时器
大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:ht ...
- 黑马JavaScript学习一 BOM之Window对象定时器功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 获取当前时间 和 10s倒计时案例
1.获取当前的时间,时间没分每秒都在走,(把握现在,将来会是美好的!) <title>获取当前时间</title> <script type="text/jav ...
- JavaScript-setInterval-周期性行定时器-倒计时
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- Android倒计时案例展示
1. Handler 与Message方法实现倒计时功能 关于Handler与Message消息机制的原理可查看:Android--Handler使用应运及消息机制处理原理分析 这个设计思路也是最经常 ...
- java 24小时倒计时案例
import java.util.Calendar; import java.util.Date; public class Daojishi { static String Countdown=&q ...
- Jquery 定时器 倒计时
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8&qu ...
随机推荐
- 会话-cookie
package com.hopetesting.cookie;import javax.servlet.ServletException;import javax.servlet.annotation ...
- 详解 java 异常
Throwable 可以用来表示任何可以作为异常抛出的类(注意,是类不是接口),分为两种: Error(注意!error也是可以throw的,但是不建议) 和 Exception. 其中 Error ...
- 【C#】【假条生成系统】【单位剖析】如何判断在文本框输入了几个人名?
我们规定,人名和人名之间使用顿号隔开 那么, 1个人,就是0个顿号 2个人,就是1个顿号 3个人,就是2个顿号 -- 所以我们可以判断文本框中顿号的出现次数. 出现0次,则为1人,出1次,则为两人. ...
- macOS Monterey 12.1 (21C52) 正式版 ISO、IPSW、PKG 下载
本站下载的 macOS Monterey 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装. 2021 年 12 月 14 日, ...
- tableau绘制热力地图
一.右键国家地区和城市字段分别设置为地理角色-国家地区和城市 二.双击国家地区和城市添加到工作表 三.把订单id拖拽至标记卡的详细信息,标记改为密度显示,颜色设置为温度发散 四.最终整理结果如下图所示
- MySQL如何随机筛选25000条数据
一.SELECT * FROM sheet1 t1 ORDER BY RAND() LIMIT 10000; 二.SELECT * FROM sheet1 AS t1 JOIN (SELECT ROU ...
- 『忘了再学』Shell基础 — 2、Shell的作用与分类
目录 1.Shell的作用 2.Shell的分类 1.Shell的作用 Shell除了能解释用户输入的命令,将它传递给内核,还可以: 调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果. 在 ...
- 数组基础(Excel函数集团)
此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业! 谢谢 下载地址:https://officecommunity- ...
- 又拿奖了!腾讯云原生数据库TDSQL-C斩获2021PostgreSQL中国最佳数据库产品奖
日前,开源技术盛会PostgresConf.CN & PGconf.Asia2021大会(简称2021 PG亚洲大会)在线上隆重召开,腾讯云作为业内领先的云数据库服务商受邀出席,多位专家深入数 ...
- CF1095B Array Stabilization 题解
Content 有一个长度为 \(n\) 的数组 \(a_1,a_2,a_3,...,a_n\),现在需要从这些数中删除一个数,使得 \(\max\limits_{i=1}^na_i-\min\lim ...