【学习笔记43】JavaScript的事件
创始人
2024-02-21 18:03:34

JavaScript的事件

    • 一、JS的事件
      • 1、事件的三要素
      • 2、DOM 0级事件绑定
      • 3、DOM 2级事件绑定(事件监听)
    • 二、浏览器事件
    • 三、鼠标事件
      • 1. 左键单击:click
      • 2. 双击事件:dblclick
      • 3.右键事件:contextmenu
      • 4. 鼠标按下事件:mousedown
      • 5. 鼠标抬起事件:mouseup
      • 6. 鼠标移动事件:mousemove
      • 7. 鼠标的移入和移出
    • 四、键盘事件
      • 1. 键盘抬起事件:keyup
      • 2. 键盘按下事件:keydown
      • 3. 键盘按下抬起事件:keypress
    • 五、表单事件
      • 1. 获得焦点事件:focus
      • 2. 失去焦点事件:blur
      • 3. 文本框内容改变时触发:change
      • 4. 文本框输入内容时触发:input
    • 六、事件对象
    • 七、获取鼠标按下时的坐标
    • 八、键盘按键


一、JS的事件

  • 在某一个时刻, 用户(在页面)做了某一件事, 我要给出的反馈

1、事件的三要素

1. 事件源
2. 事件类型
3. 事件处理函数

        
        

2、DOM 0级事件绑定

  • 事件源.on + 事件类型 = 事件处理函数
  • 弊端: 无法绑定多个同类型的事件, 后边新写的事件, 会覆盖掉原有的事件
        var oDiv = document.querySelector('div');oDiv.onclick = function () {console.log('绑定给div的第一个事件');}oDiv.onclick = function () {console.log('绑定给div的第二个事件');}

在这里插入图片描述

3、DOM 2级事件绑定(事件监听)

  • 事件源.addEventListener(‘事件类型’, 事件处理函数, 布尔值(可选))
        var oDiv = document.querySelector('div');oDiv.addEventListener('click', function () {console.log('绑定给div的第一个事件');})oDiv.addEventListener('click', function () {console.log('绑定给div的第二个事件');})

在这里插入图片描述

二、浏览器事件

  • onload: 当页面所有资源加载完毕时执行
	Document
我的是div标签

三、鼠标事件

        
        

1. 左键单击:click

        var oDiv = document.querySelector('div');oDiv.onclick = function () {console.log('单击元素时触发');}

在这里插入图片描述

2. 双击事件:dblclick

  • 300ms内连续点击两次鼠标
        var oDiv = document.querySelector('div');oDiv.ondblclick = function () {console.log('双击元素时触发');}

在这里插入图片描述

3.右键事件:contextmenu

  • 鼠标右键单击
        var oDiv = document.querySelector('div');oDiv.oncontextmenu = function () {console.log('鼠标右键单击时触发');}

在这里插入图片描述

4. 鼠标按下事件:mousedown

  • 鼠标左键按下的时候会触发的(哪怕鼠标没有抬起)
        var oDiv = document.querySelector('div');oDiv.onmousedown = function () {console.log('鼠标按下时触发');}

在这里插入图片描述

5. 鼠标抬起事件:mouseup

  • 鼠标左键抬起的时候会触发的
        var oDiv = document.querySelector('div');oDiv.onmouseup = function () {console.log('鼠标抬起时触发');}

在这里插入图片描述

6. 鼠标移动事件:mousemove

  • 鼠标在元素内部移动时触发
        var oDiv = document.querySelector('div');oDiv.onmousemove = function () {console.log('鼠标移动时触发');}

在这里插入图片描述

7. 鼠标的移入和移出

  • mouseover和mouseout两个方法,移入元素和移出元素子盒子时都会触发
  • mouseenter和mouseleave两个方法,只有在移入元素时触发
        var oDiv = document.querySelector('div');// 鼠标移入事件1      鼠标的移动到元素内部时触发oDiv.onmouseover = function () {console.log('onmouseover:鼠标移入时触发');}// 鼠标移出事件1      鼠标移动出元素内部时触发oDiv.onmouseout = function () {console.log('onmouseout:鼠标移出时触发');}// 鼠标移入事件2oDiv.onmouseenter = function () {console.log('onmouseenter:鼠标移入事件2');}// 鼠标移出事件2oDiv.onmouseleave = function () {console.log('onmouseleave:鼠标移出事件2');}

在这里插入图片描述

四、键盘事件

  • document.on键盘事件的事件类型 = function () {}

1. 键盘抬起事件:keyup

        document.onkeyup = function () {console.log('键盘按键抬起');}

2. 键盘按下事件:keydown

        document.onkeydown = function () {console.log('键盘某个按键被按下');}

3. 键盘按下抬起事件:keypress

        document.onkeypress = function () {console.log('键盘按下抬起时触发');}

五、表单事件

        文本框: 

1. 获得焦点事件:focus

        var inp = document.querySelector('#inp')inp.onfocus = function () {console.log('当前文本框获得焦点');}

在这里插入图片描述

2. 失去焦点事件:blur

        var inp = document.querySelector('#inp')inp.onblur = function () {console.log('当前文本框失去焦点');}

在这里插入图片描述

3. 文本框内容改变时触发:change

        var inp = document.querySelector('#inp')inp.onchange = function () {console.log('当前文本框内容被更改');}

在这里插入图片描述

4. 文本框输入内容时触发:input

        var inp = document.querySelector('#inp')inp.oninput = function () {console.log('当前文本框正在输入内容');}

在这里插入图片描述

六、事件对象

  • 当事件触发时, 携带一些信息
  • 当前时间的事件源是谁?
  • 鼠标点击的位置在哪里(点击事件)
  • 键盘按下了那个按键(键盘事件)
        
        var oBtn = document.querySelector('button');oBtn.onclick = function (event) {console.log(event);}

在这里插入图片描述

七、获取鼠标按下时的坐标

相对于
1. 事件源
2. 页面
3. 浏览器窗口

        
        
        var oDiv = document.querySelector('div');oDiv.onclick = function (e) {// 1. 获取相对于事件源的鼠标坐标点console.log('相对于事件源 X 轴', e.offsetX);console.log('相对于事件源 Y 轴', e.offsetY);// 2. 获取相对于页面的坐标点console.log('---------------------------------');console.log('相对于页面的 X 轴', e.pageX);console.log('相对于页面的 Y 轴', e.pageY);// 3. 获取相对于浏览器窗口的坐标点console.log('---------------------------------');console.log('相对于浏览器窗口的 X 轴', e.clientX);console.log('相对于浏览器窗口的 Y 轴', e.clientY);}

在这里插入图片描述

八、键盘按键

  • e.key ===> 返回按下的按键
  • e.keyCode ===> 返回按下的按键的进制码
  • keyCode已经被移除, 但是很多主流浏览器还支持使用
    
        var oIpt = document.querySelector('input');oIpt.onkeyup = function (e) {console.log(e.key, e.keyCode);}

在这里插入图片描述

判断:Ctrl+A

        var oIpt = document.querySelector('input');oIpt.onkeyup = function (e) {if (e.ctrlKey && e.key === 'a') {console.log('按下了Ctrl+A键');}}

在这里插入图片描述

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...