js事件大全
事件 | 名称 | 触发时机 |
---|---|---|
onload | 页面加载完成时 | dom结构、图片、js、css全部加载完成后触发 |
DOMContentLoaded | 结构加载完成时 | dom结构加载完成后触发 |
load | 页面加载完成时 | dom结构、图片、js、css全部加载完成后触发 |
onunload | 页面卸载后 | 页面离开、关闭后触发 |
beforeunload\onbeforeunload | 页面卸载完成前 | 页面离开、关闭前触发 |
pagehide\onpagehide | 页面隐藏时事件 | 页面隐藏后触发(本地测试性能不好) |
pageshow\onpageshow | 页面显示时事件 | 页面显示后触发 |
onresize | 窗口发生变化时 | window窗口发生变化后触发 |
onscroll | 滚动条发生变化时 | 页面上滚动条发生变化后触发 |
onerror | 页面发生错误时 | 页面异常时触发 |
addEventListener | 给指定元素添加事件句柄 | 可添加任何事件,可添加相同事件、可添加多个句柄 |
(()=>{})() | 立即执行函数 | 无论它放在那里都是他先执行 |
message | 当接收到消息时触发 | 监听一个postMessage消息 |
postMessage | 发送一个message |
onload
一个页面只能定义一次,也只会初始化一次
// 写法一
window.onload = ()=>{
console.log('页面加载完毕')
}
// 写法二
window.onload = load
function load(){
console.log('页面加载完毕')
}
// 写法三
window.onload = function load(){
fun()
fun1()
}
function fun(){
console.log('执行fun')
}
function fun1(){
console.log('执行fun1')
}
DOMContentLoaded
当初始的 HTML 文档被完全加载和解析完成之后,
DOMContentLoaded
事件被触发,而无需等待样式表、图像和子框架的完全加载。
// 写法一
window.addEventListener = ('DOMContentLoaded',()=>{
console.log('dom结构加载完成')
})
// 写法二
window.addEventListener = ('DOMContentLoaded',fun1)
const fun1 = ()=>{
console.log('dom结构加载完成')
}
// 写法三
window.addEventListener = ('DOMContentLoaded',function(){
console.log('dom结构加载完成')
})
load
与onload用法一致
当页面定义了DOMContentLoaded,load将不会被执行
// 写法一
window.addEventListener = ('load',()=>{
console.log('load加载完成')
})
onunload\unload
页面卸载时触发此函数
页面离开后触发这个时间非常短可能会无法触发,所以建议用onbeforeunload
// 写法一
window.onunload = ()=>{
console.log('页面卸载后')
}
// 写法二
window.addEventListener = ('unload',()=>{
console.log('页面卸载后')
})
onbeforeunload\beforeunload
页面卸载前时触发此函数,表现比onunload好
// 写法一
window.onbeforeunload = ()=>{
console.log('页面卸载前')
}
// 写法二
window.addEventListener = ('beforeunload',()=>{
console.log('页面卸载前')
})
onpagehide\pagehide
页面隐藏时触发,本地测试效果不佳,谷歌无论如何都没有触发,火狐刷新时触发
// 写法一
window.onpagehide = ()=>{
console.log('页面隐藏了')
}
// 写法二
window.addEventListener = ('pagehide',()=>{
console.log('页面隐藏了')
})
onpageshow\pageshow
页面显示时触发
// 写法一
window.onpageshow = ()=>{
console.log('页面显示了')
}
// 写法二
window.addEventListener = ('pageshow',()=>{
console.log('页面隐藏了')
})
onresize\resize
页面可视区域发生变化时触发此函数
// 写法一
window.onresize = ()=>{
console.log('窗口发生变化了')
}
// 写法二
window.addEventListener('resize', () => {
console.log('窗口发生变化了')
})
onscroll\scroll
页面滚动条发生变化时触发此函数
无论方向都会触发
// 写法一
window.onscroll = ()=>{
console.log('页面滚动了')
}
// 写法二
window.addEventListener('scroll', () => {
console.log('页面滚动了')
})
onerror\error
页面发生错误时调用,返回报错信息,报错文件、报错位置
// 写法一 利用ES6 rest 获取到全部实参
window.onerror = (...aegus)=>{
console.log(aegus)
return true; // 禁用浏览器报错
}
a.innerHTML = ""; // 制造问题
// 写法二
window.addEventListener('error', () => {
})
立即执行函数
在js执行上下文阶段,立即执行函数就会执行
当有多个时按加载顺序执行
每个立即执行函数后都需要加分号
// 写法一
!function(){
console.log('立即执行函数1')
}();
// 写法二
(()=>{
console.log('立即执行函数2')
})();
javaScript-location函数
函数 | 名称 | 备注 |
---|---|---|
location.reload | 页面刷新函数 | 立即执行 |
location.replace | 重定向 | |
location.search | url参数,?号后所有内容 | |
location.hash | url参数,# 号后内容 锚链接内容 | |
location.host | 域名,不包含http和参数 | |
location.hostname | 域名,不包含http和参数 | |
location.origin | 网址,协议+域名 | |
location.pathname | 地址,域名后所有内容包括参数 | |
location.port | 请求方式 | |
location.protocol | 协议 |
[图片上传失败...(image-551b5a-1653639727037)]
javaScript-element函数
元素自身函数:
函数名 | 作用 | 演示 |
---|---|---|
element.attributes | 获取原生属性值 | e.attributes() |
element.childElementCount | 获取元素子元素数量 | e.childElementCount |
element.children | 返回元素的子元素实例 | e.children |
element.className | 修改元素class名称 | e.className = ‘123456’ |
element.clientHeight | 返回元素高度 | e.clientHeight |
element.clientWidth | 返回元素宽度 | e.clientWidth |
element.clientLeft | 返回元素左边宽宽度<br />(依次类推) | e.clientLeft |
.firstElementChild | 返回第一个子元素 | |
.id | 返回元素id值 | |
.innerHTML | 返回元素html,字符串 | |
.querySelector | 全dom查询指定内容 | |
.scrollHeight | 返回垂直元素滚动高度 | |
.scrollLeft | 返回横向元素滚动高度 | |
.scrollTop
|
设置元素滚动条高度 | e.scrollTop = 0 |
scrollTopMax |
返回元素最大滚动距离 |
元素继承父级的函数(继承自window):
函数名 | 作用 | 用法 |
---|---|---|
addEventListener() |
给元素添加事件监听函数 | |
after() |
提示 | |
append() |
在元素后插入新元素 | |
before() |
在元素前插入新元素 | |
getAttribute() |
返回指定属性value值 | e.getAttribute(‘class’) |
getAttributeNames() | 返回指定元素所有属性 | e.getAttributeNames() |
getBoundingClientRect() | 返回元素大小和位置,距窗口边缘距离<br />(可视化的高度宽度) | e.getBoundingClientRect() |
hasAttribute() |
验证元素是否设置某属性 | |
.querySelector | 全dom查询指定内容 | |
.querySelectorAll | ||
remove() |
删除指定元素(没错自己删自己) | el.remove() |
querySelector\querySelectorAll
全document查询元素
无论是id、class、属性值、标签都可以查
document.querySelector('a') // 查询到第一个a标签
document.querySelector('div["class=dom"]') // 查询到第一个div class值等于dom的元素
document.querySelector('.dom') // 查询到第一个class值等于dom的元素
document.querySelector('#dom') // 查询到第一个id值等于dom的元素
document.querySelectorAll('a') // 查询到全部a标签
document.querySelectorAll('div["class=dom"]') // 查询到全部div class值等于dom的元素
document.querySelectorAll('.dom') // 查询到全部class值等于dom的元素
document.querySelectorAll('#dom') // 查询到全部id值等于dom的元素
javaScript-Element.addEventListener事件
// 示例
element.addEventListener = ('load',()=>{
console.log('页面加载完成')
})
事件明 | 说明 |
---|---|
cancel | 监听窗口关闭时 |
error | 监听错误,与全局的一样用法 |
scroll |
|
select |
监听文本选中时事件 |
wheel | 鼠标滚轮滚动事件,鼠标移入某元素时,鼠标滚动则会触发 |
copy |
复制 |
cut |
剪切 |
paste |
粘贴 |
blur |
元素失去焦点时触发事件 |
focus |
元素得到焦点时触发事件 |
focusin |
元素得到焦点前触发事件 |
focusout |
元素失去焦点前触发事件 |
keydown |
键盘事件,按下触发 |
keypress |
键盘事件,按下并产生字符集时触发,空格、回车、数字、英文标点符号有效其他无效 |
keyup |
键盘事件,弹起时 |
click | 鼠标事件,点击时, |
dbclick | 鼠标事件,双击时 |
DOMActivate | 鼠标事件,dom点击事件 |
mousedown | 鼠标事件,点击前 |
mouseenter |
鼠标事件,鼠标移入时 |
mouseleave |
鼠标事件,鼠标离开后 |
mousemove |
鼠标事件,鼠标移动 |
mouseover |
鼠标事件,鼠标移入 |
click\DOMActivate
鼠标点击事件
addEventListener.DOMActivate 方式监听 document.onclick方式 ,document.onclick方式优先
let dom1 = document.querySelector('div')
dom1.onclick = function(){
console.log('优先触发')
}
dom1.addEventListener('DOMActivate',()=>{
console.log('其次触发')
})