JS 窗口加载与定时器笔记
bom浏览器对象模型
窗口加载事件
<button>点击</button>
window.onload = function () {
var btn = window.document.querySelector('button')
btn.onclick = function () {
alert('ok')
}
}
window.addEventListener('load', function () {
var btn = window.document.querySelector('button')
btn.onclick = function () {
alert('ok')
}
})
调整窗口大小事件
<div class="box">123</div>
var box = document.querySelector('.box')
window.addEventListener('resize', function () {
if (window.innerWidth <= 800) {
box.style.display = 'none'
} else {
box.style.display = 'block'
}
})
两种定时器
window.setTimeout(调用函数,[延迟的毫秒数])
注意
setTimeout(function () {
console.log('ok'); }, [2000]) function fn() {
console.log('okk');
}
var times1 = setTimeout(fn, 3000)
var times2 = setTimeout('fn()', 3000)
var t = 3000;
fn1()
function fn1() {
imgs[0].style.display = 'block'
imgs[1].style.display = 'none'
imgs[2].style.display = 'none'
times1 = setInterval(fn2, t)
clearInterval(times3)
} function fn2() {
imgs[0].style.display = 'none'
imgs[1].style.display = 'block'
times2 = setInterval(fn3, t)
clearInterval(times1)
} function fn3() {
imgs[0].style.display = 'none'
imgs[1].style.display = 'none'
imgs[2].style.display = 'block'
times3 = setInterval(fn1, t)
clearInterval(times2)
} })
案例
<!-- 五秒之后自动关闭广告 -->
<img src="../imges/u=3568135932,2181685849&fm=26&gp=0.jpg" alt="" class="ad">
var ad = document.querySelector('.ad')
setTimeout(function () {
ad.style.display = 'none'
}, 5000)
效果图
停止setTimeout()定时器
案例
<button class="btn">点击</button>
var btn = document.querySelector('.btn')
var times = setTimeout(function () {
console.log('lll'); }, 6000)
btn.addEventListener('click', function () {
clearTimeout(times)
})
<button class="begin">开启</button>
<button class="stop">停止</button>
var begin = document.querySelector('.begin')
var stop = document.querySelector('.stop')
var times = null;
begin.addEventListener('click', function () {
times = setInterval(function () {
console.log('你好吗');
}, 1000)
})
stop.addEventListener('click', function () {
clearTimeout(times)
})
效果图
window.setInterval(调用函数,[延迟的毫秒数])
案例
<div class="box2">
<span class="hour">1</span>
<span class="minute">2</span>
<span class="second">3</span>
</div>
var hour = document.querySelector('.hour')
var minute = document.querySelector('.minute')
var second = document.querySelector('.second')
var inputTime = +new Date('2020-4-9 18:00:00') conutDown() //先调用一次防止第一次刷新页面有空白 // 开启定时器
setInterval(conutDown, 1000) function conutDown() {
var nowTime = +new Date()
var times = (inputTime - nowTime) / 1000; //剩余时间的秒数
var d = parseInt(times / 60 / 60 / 24) //天
d = d < 10 ? '0' + d : d;
var h = parseInt(times / 60 / 60 % 24) //时
h = h < 10 ? '0' + h : h;
hour.innerHTML = h;
var m = parseInt(times / 60 % 60) //分
m = m < 10 ? '0' + m : m;
minute.innerHTML = m;
var s = parseInt(times % 60) //秒
s = s < 10 ? '0' + s : s;
second.innerHTML = s;
}
效果图
JS 窗口加载与定时器笔记的更多相关文章
- AMD加载器实现笔记(二)
AMD加载器实现笔记(一)中,我们实现了一个简易的模块加载器.但到目前为止这个加载器还并不能称为AMD加载器,原因很简单,我们还不支持AMD规范中的config配置.这篇文章中我们来添加对config ...
- 转:web前端面试题合集 (Javascript相关)(js异步加载详解)
1. HTTP协议的状态消息都有哪些? 1**:请求收到,继续处理2**:操作成功收到,分析.接受3**:完成此请求必须进一步处理4**:请求包含一个错误语法或不能完成5**:服务器执行一个完全有效请 ...
- sea.js模块加载工具
seajs的使用 seajs是一个jS模块加载器,由淘宝前端架构师玉伯开发,它可以解决命名空间污染,文件依赖的问题.可以在一个js文件中引入另外一个js.require('a.js') 1.安装 np ...
- js 模版加载到前端
js 模版加载到前端 简单有效不高端 配个路由 /js/:filename , 用 readTemplate 响应请求,前端可以按模块方式直接 require 模板 'use strict' var ...
- 前端设计中关于外部js文件加载的速度优化
在一般情况下,许多人都是将<script>写在了<head>标签中,而许多浏览器都是使用单一的线程来加载js文件的,从上往下,从左往右. 若是加载过程出错,那么网页就会阻塞,就 ...
- js动态加载以及确定加载完成的代码
利用原生js动态加载js文件到页面,并在确定加载完成后调用相关function var otherJScipt = document.createElement("script") ...
- 第三课:sea.js模块加载原理
模块加载,其实就是把js分成很多个模块,便于开发和维护.因此加载很多js模块的时候,需要动态的加载,以便提高用户体验. 在介绍模块加载库之前,先介绍一个方法. 动态加载js方法: function l ...
- js资源加载优化
互联网应用或者访问量大的应用,对js的加载优化是不可少的.下面记录几种优化方法 CDN + 浏览器缓存 CDN(content delivery network)内容分发网络, 最传统的优化方式.其 ...
- 判断JS是否加载完成
在正常的加载过程中,js的加载都是同步的,也就是在加载过程中,浏览器会阻塞接下来的内容的加载.这时候我们就要用到动态加载,动态加载是异步的,如果我们在后边要用到这个动态加载的js文件里的东西,就要保证 ...
随机推荐
- python 装饰器(一):装饰器基础(一)装饰器形式,何时执行
简介 装饰器是可调用的对象,其参数是另一个函数(被装饰的函数). 装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象. 形式 假如有个名为 decorate 的装饰器: ...
- less基础
less less的含义: less是一种动态样式语言,属于css预处理器的范畴,它扩展了css语言,增加了变量.Mixin.函数等特性,使css更易维护和扩展. 此外,less既可以在客户端上运行, ...
- 2020软件测试自学全套教程-基于python自动化软件测试-2020新版软件测试中级程序员学习路线
不知不觉间,在软件测试行业野蛮的折腾了七年之久.七年之痒也即将过去,但我还是热爱着软件测试这一份工作,一路坚持,走到现在.经历过各种难题,有过迷茫,有过焦虑失眠.也踩过无数的坑,深知行业的不易.自从9 ...
- 软件测试中的微信小程序怎么测试?
1.没有需求文档时,如何测试小程序?现在大多数公司的开发模式是:敏捷模式(用户故事) ,即以什么身份做什么事情会出现什么样的结果.那实际测试过程中,没有需求文档时,测试可以采用以下方式更好的完成测试工 ...
- xenomai内核解析之信号signal(一)---Linux信号机制
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正.博客地址:https://www.cnblogs.com/wsg1100/ 目录 1. Linux信号 1.1注册信号处理函数 ...
- JAVA面向对象:三大特征 封装讲解
一.JAVA封装 1.封装的理解 封装是 JAVA 面向对象思想的 一 种特性,也是一种信息隐蔽的技术 2.封装的原则 将类中的某些信息隐藏起来,来防止外部程序直接访问,通过类中的方法实现对隐藏的信息 ...
- jmeter零散知识点
- Monster Audio 使用教程(二)效果参数的保存
点击左上角主菜单按钮,点击[保存]菜单,即可保存当前的所有效果参数. [另存为]菜单,则是把当前参数另存一个名称,然后通过[切换效果]菜单,实现效果的切换. 独立保存单个音轨的效果 点击音轨对应的[ ...
- dos格式迭代转为unix
#!/bin/bash function recurse_convert() { local path=$ if [ "$path" == "" ];then ...
- 【Logisim实验】构建立即数-随机存储器-寄存器的传送
关于Logisim Logisim在仿真软件行列中算是比较直观的软件了,它能做的事情有很多,唯一不足的是硬件描述语言的支持,总体上来说适合比较底层的仿真,依赖于Hex值,通过线路逻辑设计能够较好的 关 ...