单词小记
Interval 间隔
press 压,按入
location 位置,内存里的地址
1. 常用按键事件
1.1 按键事件
onkeypress 按下加抬起
不识别系统按钮(功能键等),keycode区分大小写
onkeydown 按下
识别系统按钮,keycode不区分字母大小写,
onkeyup 抬起
执行顺序:
onkeydown》onkeypress》onkeyup
1.2 按键事件对象
keyCode 返回该键的ASCII值
2. BOM
2.1 调整窗口大小
onresize 窗口大小发生改变时触发
例:
window.addEventListener("resize",function(){
console.log(window.innerWidth);
if(window.innerWidth>800){}
else{}
})
2.2 定时器
2.2.1 setTimeout和clearTimeout (定时器只调用一次)
setTimeout(调用函数,延迟毫秒数) 开启定时器
clearTimeout(定时器标识符) 清除定时器
例:
btn1和btn2是两个按钮元素(d.queryselector())
btn1.addEventListener("click",function(){
time=null
time=setTimeout(function(){
text.style.color="pink"
},3000)
})
btn2.addEventListener("click",function(){
clearTimeout(time)
})
2.2.2 setInterval和clearInterval (定时器可循环调用)
setInterval(调用函数,延迟毫秒数) 开启定时器
clearInterval(定时器标识符) 清除定时器
例:
btn1和btn2是两个按钮元素
btn1.addEventListener("click",function(){
clearInterval(time)
time=setInterval(function(){
a++
text.innerHTML=a
},1000)
})
btn2.addEventListener("click",function(){
clearInterval(time)
})
2.2.3 定时器小问题
首先创建定时时候需要给一个标识符,以便清除(标识符)
比如:
var time=setTimeout(函数,延迟毫秒) 这个time就是一个标识符
定时器叠加问题:
多次调用定时器,他的效果会叠加,且通过清除定时器并不能停下
原因:
因为多次调用的这个标识符(time)的值是不同的,
而clearTimeout只能清除最后一次的定时器
解决方案:
1.在开启定时器的时候,先进行定时器关闭
2.使用开关思想
2.3 location(window提供的,用于获取窗口url)
URL:协议://主机:端口/路径? 参数1=值1 & 参数2=值2
http://localhost:8080/close?name="斐乐"
location.href 获取整个url
location.host 返回主机
location.port 返回端口
location.search 返回参数
location.pachname 返回路径
2.4 滚动条事件
onscroll 滚动条开始滚动时触发
例:
window.addEventListener("scroll",function(){
console.log(document.documentElement.scrollTop);
})
2.5 js执行机制
js是一个单线程
分为同步和异步
异步:定时器(setInerval),普通事件,ajax等
执行流程:
先同步,后异步
先在主线程进行同步任务,把异步放在一个消息队列中,
等同步任务执行完毕,再把异步放到主线程执行