十三、js中的事件(用户和网页之间的交互)

事件概念

事件:触发了一个东西/事情 用户和网页之间的交互/动作

举例:鼠标、键盘等所做的动作/交互就是事件,如: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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值