黑马程序员前端JavaScript入门到精通全套视频教程,javascript核心进阶ES6语法、API、js高级等基础知识和实战教程
DOM.addEventListener(事件类型, 事件处理函数, 是否使用捕获机制)
const father = document.querySelector('.father')
const son = document.querySelector('.son')
document.addEventListener('click', function() {
alert('我是爷爷')
})
fa.addEventListener('click', function() {
alert('我是爸爸')
})
son.addEventListener('click', function() {
alert('我是儿子')
})
事件对象.stopPropagation()
const father = document.querySelector('.father')
const son = document.querySelector('.son')
document.addEventListener('click', function() {
alert('我是爷爷')
})
fa.addEventListener('click', function() {
alert('我是爸爸')
})
// 需要事件对象
son.addEventListener('click', function(e) {
alert('我是儿子')
// 阻止冒泡
e.stopPropagation()
})
我们某些情况下需要阻止默认行为的发生,比如 阻止 链接的跳转,表单域跳转。
e.preventDefault()
<form action="http://www.baidu.com">
<input type="submit" value="提交">
form>
<script>
const form = document.querySelector('form')
form.addEventListener('click', function(e) {
// 阻止表单默认提交行为
e.preventDefault()
})
script>
// 绑定事件
btn.onClick = function() {
alert('点击了')
}
// 解绑事件
btn.onClick = null
function fn() {
alert('点击了')
}
// 绑定事件
btn.addEventListener('click', fn)
// 解绑事件
btn.removeEventListener('click', fn)
const lis = document.querySelectorAll('ul li')
for(let i=0; i
const ul = document.querySelector('ul')
ul.addEventListener('click', function(e) {
// console.dir(e.target)
if(e.target.tagName === 'LI') {
this.style.color = 'pink'
}
})
// 页面加载事件
windows.addEventListener('load', function() {
// 执行的操作
})
document.addEventListener('DOMContentLoaded', function() {
// 执行的操作
}
页面加载事件有哪两个?如何添加?
// 页面滚动事件
windows.addEventListener('scroll', function() {
// 执行的操作
}
div.addEventListener('scroll', function() {
console.log(this.scrollTop)
}
// 页面滚动事件
windows.addEventListener('scroll', function() {
// document.documentElement 是 html 元素获取方式
const n = document.documentElement.scrollTop
console.log(n)
}
元素.scrollTo(x, y)
// 让页面滚动到 y 轴1000像素的位置
window.scrollTo(0, 1000)
windows.addEventListener('resize', function() {
// 执行的操作
}
windows.addEventListener('resize', function() {
let w = document.documentElement.clientWidth
console.log(w)
}
总结:
属性 | 作用 | 说明 |
---|---|---|
scrollLeft和scrollTop | 被卷去的头部和左侧 | 配合页面滚动来用,可读写 |
clientWidth和clientHeight | 获得元素宽度和高度 | 不包含border、margin、滚动条,用于js获取元素大小,只读属性 |
offsetWidth和offsetHeight | 获得元素宽度和高度 | 包含border、padding,滚动条等,只读 |
offsetLeft和offsetTop | 获取元素距离自己定位父级元素的左、上距离 | 获取元素位置的时候使用,只读属性 |