事件概念
事件:触发了一个东西/事情 用户和网页之间的交互/动作
举例:鼠标、键盘等所做的动作/交互就是事件,如:onlick等
留心:事件产生后一般交给谁处理 函数处理
事件种类
一、鼠标
单击 onclick
双击 ondblclick
移入 onmouseover
移出 onmouseout
按下 onmousedown
松开 onmouseup
右击 oncontextmenu content内容 context等
onclick单击事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置单击事件 也就是给div设置鼠标单击的动作/交互
divObj.onclick = function() {
console.log('this is onclick')
}
</script>
ondblclick双击事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置双击事件 也就是给div设置鼠标双击的动作/交互
divObj. ondblclick = function() {
console.log('this is onclick')
}
</script>
onmouseover鼠标移入事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置鼠标移入事件 也就是给div设置鼠标移入的动作/交互
divObj. onmouseover = function() {
console.log('this is onmouseover')
}
</script>
onmouseout鼠标移出 事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置鼠标移出事件 也就是给div设置鼠标移出的动作/交互
divObj. onmouseout = function() {
console.log('this is onmouseout')
}
</script>
onmousedown鼠标按下事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置鼠标按下事件 也就是给div设置鼠标点击按下的动作/交互
divObj. onmousedown = function() {
console.log('this is onmousedown')
}
</script>
onmouseup鼠标点击松开事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置鼠标松开事件 也就是给div设置鼠标点击松开的动作/交互
divObj. onmouseup = function() {
console.log('this is onmouseup')
}
</script>
oncontextmenu鼠标右击事件用法示例
<body>
<div style="width:100px;height:100px;background:red;"></div>
</body>
<script>
// 1. 获取标签
var divObj = document.querySelector('div')
console.log(divObj) // <div style="width:100px;height:100px;background:red;"></div>
// 2. 设置鼠标右击事件 也就是给div设置鼠标右击的动作/交互
divObj. oncontextmenu = function() {
console.log('this is oncontextmenu')
}
</script>
二、键盘
按下 onkeydown
松开 onkeyup
onkeydown键盘按下事件用法示例
<body>
<form action="">
<p>
用户名: <input type="text" name="username">
</p>
</form>
</body>
<script>
// 1. 获取标签
var usernameObj = document.querySelector("input[name=username]")
// console.log(usernameObj) <input type="text" name="username">
// 2. 给他设置键盘按下事件 键盘松开事件
usernameObj.onkeydown = function() {
console.log('按下')
}
</script>
onkeyup键盘松开事件用法示例
<body>
<form action="">
<p>
用户名: <input type="text" name="username">
</p>
</form>
</body>
<script>
// 1. 获取标签
var usernameObj = document.querySelector("input[name=username]")
// console.log(usernameObj) <input type="text" name="username">
// 2. 给他设置键盘按下事件 键盘松开事件
usernameObj.onkeyup = function() {
console.log('松开')
}
</script>
三、表单
表单提交 onsubmit
表单重置 onreset
onsubmit、onreset 都是给 form标签的
失去焦点 onblur
获取焦点 onfocus
下拉改变 onchange 上传头像file 下拉框select 单独记等
焦点名词就是 你鼠标单击input会有一个东西一闪一闪 出现这个东西代表你获取焦点
onblur失去焦点 事件演示
<body>
<form action="">
<p>
用户名: <input type="text" name="username">
</p>
</form>
</body>
<script>
// 1. 获取标签
var usernameObj = document.querySelector("input[name=username]")
// console.log(usernameObj) <input type="text" name="username">
// 2. 给他设置输入框失去焦点事件
usernameObj.onblur = function() {
console.log('失去焦点')
}
</script>
onfocus获取焦点 事件演示
同上失去焦点用法一样,只不过将onblur改为onfoucus即可;
效果就是在获得焦点时便会执行回调函数里面的功能。
onchange下拉改变事件演示:
<form action="">
<p>
分类
<select name="" id="">
<option value="中国">中国</option>
<option value="泰国" selected>泰国</option>
<option value="日本">日本</option>
<option value="美国">美国</option>
</select>
</p>
<p>
<input type="submit" value="提交">
<input type="reset" value="重置">
</p>
</form>
</body>
<script>
var selectObj = document.querySelector('select')
selectObj.onchange = function() {
var temp = document.querySelector('select')
console.log(temp.value)
}
四、页面
页面加载完毕执行 onload (思考:js代码写在head好还是body结束前面好?body结束前面)
网页尺寸改变 onresize (window.innerWidth || document.documentElement.clientWidth)
网页滚动条 onscroll (发现页面快到底部了 显示返回顶部标签)
document.body.scrollTop
document.documentElement.scrollTop
页面加载完毕执行 onload 事件演示
<script>
var divObj = document.querySelector('div')
console.log(1, divObj) // 返回 null
// 明确:代码是从上向下执行
// 执行到第4行 div标签还没运行 所以null
// 因此:以后大家写js代码切记放到 body结束标签位置 先处理HTML 再走JS
window.onload = function() { // 因为这块代码声明了,但是函数里面没执行 HTML标签解析完毕了
var divObj = document.querySelector('div')
console.log(2, divObj)
}
</script>
<body>
<div></div>
</body>
网页尺寸改变 onresize (window.innerWidth || document.documentElement.clientWidth)演示:
<body>
<div></div>
</body>
<script>
window.onresize = function() {
console.log('哥哥别乱动网页')
}
</script>
网页滚动条 onscroll (发现页面快到底部了 显示返回顶部标签)
<script>
window.onscroll = function() {
console.log('你操作滚动条了')
}
</script>
document.body.scrollTop
document.documentElement.scrollTop
<script>
window.onscroll = function() {
console.log('你操作滚动条了')
console.log(document.documentElement.scrollTop) // 有HTML 基本结构有效(推荐
console.log(document.body.scrollTop) // 没有HTML基本结构
}
</script>
小总结
事件是什么:用户和网页之间动作/交互
事件一般都交给谁处理:函数
事件语法:标签对象.事件类型 = 函数
事件种类:
鼠标:onclick!!! 、onmouseover/out!!!、onmousedown/up、oncontextmenu
键盘:onkeydown/up!!!
表单!!!:onsubmit、onfocus、onblur、onchange type:file/select
网页(window:onload、onresize!!、onscroll
滚动条位置(有结构:document.documentElement.scrollTop)
滚动条位置(无结构:document.body.scrollTop)