2、鼠标事件、键盘事件、浏览器事件、监听事件、冒泡事件、默认事件、属性操作

一、鼠标事件

1、单击事件:onclick

<body><header id="head">我是头部标签</header>
</body>
<script>
var head = document.getElementById("head")head.onclick = function () {console.log("我是鼠标单击事件");}
</script>

==注意:==for循环里面的点击事件 不能用i,要用this,因为是异步的

image-20240126170010686

2、双击事件:ondblclick

3、鼠标移入事件:onmouseover

4、鼠标移出事件:onmouseout

5、鼠标进入事件:onmouseenter

6、鼠标离开事件:onmouseleave

7、鼠标移动事件:onmousemove

8、鼠标抬起事件:onmouseup

9、鼠标放下事件:onmousedown

10、鼠标获取焦点:onfocus

获取里面的值:value

<body><input type="text">
</body>
<script>
var text = document.getElementsByTagName("input")[0]text.onfocus = function () {console.log("鼠标获取焦点了");}
</script>

11、鼠标失去焦点:onblur

案例:失去焦点后获取输入框的值 value

image-20240126194326071

二、键盘事件

1、键盘按下事件:onkeydown

<body><input type="text">
</body>
<script>
var text = document.getElementsByTagName("input")[0]// 1、按键按下事件onkeydowntext.onkeydown = function () {console.log("键盘按下了");}// 2、按键抬起事件onkeyuptext.onkeyup = function () {//注意有连接符的要去掉,后面字母要大写this.style.backgroundColor = "red"}
</script>

2、键盘抬起事件:onkeyup

三、浏览器事件

浏览器加载完成事件:window.onload

浏览器滚动事件:window.onscroll

<body style="height: 200px;"><header id="head">我是头部标签</header><input type="text">
</body>
<script>window.onscroll = function () {console.log('滚动了')}
</script>

四、监听事件

1、普通的绑定事件

  • 事件源.事件类型 = 事件的处理程序

  • 解绑: 事件源.事件类型 = null
    ==注意:==普通的事件不能用remove,绑定的也只能用remove

<head><style>.headObj {height: 100px;background-color: red;}</style>
</head>
<body><header id="headObj" class="headObj">我是头部区域标签</header>
</body>
<script>var headObj = document.getElementById('headObj')//绑定:事件源.事件类型 = 事件的处理程序headObj.ondblclick = function () {this.style.backgroundColor = 'rgb(0,255,0)'}//解绑:headObj.ondblclick = null
</script>

2、绑定监听事件

  • 事件源.addEventListener(事件类型,事件的处理程序)

  • 解绑:事件源.removeEventListener(事件类型,事件处理程序的函数名)
    注意:这个里面的事件 不加 on

<script>
//绑定:事件源.addEventListener(事件类型,事件的处理程序)headObj.addEventListener('mouseover', fn1)function fn1() {this.style.height = '200px'}//解绑:headObj.removeEventListener('mouseover', fn1)
</script>

3、事件对象

任何一个事件都有一个内置对象event

image-20240126184344683

  • event输出结果
    image-20240126184304754

获取事件对象的方式

  • 浏览器兼容性的事件对象手法
    var event = event || window.event

  • 在事件中处理程序中的参数 e (就是event)

console.log(e);

image-20240126184627082

事件对象中的常见属性

  • target:存储了事件源的特性
    image-20240126184848987

  • clientX与pageX的区别:

    • 相同点:
      clientXpageX都是事件的触发点距离左侧浏览器的横坐标

    • 不同点:
      clientX不包含滚动条卷去的距离
      pageX包含滚动条卷去的距离

image-20240126185100378

  • 事件的类型:console.log(e.type)

    image-20240126185151603

  • key:键名

  • keyCode:键码

image-20240126162602970

敲回车登录

image-20240126162550143

4、冒泡事件

阻止冒泡事件(重点)

  • a、event.stopPropagation() 只输出子元素的事件

    image-20240126190118822

  • b.解绑父元素事件

image-20240126162844878

onmouseover/onmouseout支持冒泡的,

image-20240126163532556

image-20240126163054789

onmouseenter/onmouseleave不支持冒泡

image-20240126163109741

5、默认事件

1、a链接

2、form表单提交

image-20240126164738318

<body><!-- 默认事件:a链接  form表单提交--><a href="https://www.baidu.com" id="link">百度一下</a><form action="https://www.qq.com" method="get"><input type="submit" onclick="submitEvent();" /></form>
</body>
<script>document.getElementById('link').onclick = function () {alert('单击事件执行了!')// 阻止默认事件var event = event || window.eventevent.preventDefault()}function submitEvent() {alert('单击表单执行了')// 阻止默认事件var event = event || window.eventevent.preventDefault()}
</script>

五、属性操作

getAttribute(“属性名”) 获取元素指定的属性值

setAttribute(“属性名”,“属性值”) 设置元素的属性名和属性值

getAttribute(“属性名”) 删除元素指定的属性名

<head><style>.secClass {height: 100px;background-color: red;}</style>
</head>
<body><section id="secId" class="secClass" name_1="fristName">区间</section><button id="set">设置属性</button><button id="remove">删除属性</button>
</body>
<script>var secObj = document.getElementById('secId')/* getAttribute("属性名") 获取元素指定的属性值*/console.log(secObj.getAttribute('id'))console.log(secObj.getAttribute('class'))console.log(secObj.getAttribute('name_1'))/* setAttribute("属性名","属性值") 设置元素的属性名和属性值*/document.getElementById('set').onclick = function () {secObj.setAttribute('id', 'objId')secObj.setAttribute('name_1', 'lastName')secObj.setAttribute('age_1', '12')}/* getAttribute("属性名") 删除元素指定的属性名*/document.querySelector('#remove').addEventListener('click', function () {secObj.removeAttribute('class')secObj.removeAttribute('name_1')})
</script>

image-20240126165213667

  • 设置属性
    setAttribute(“属性名”,“属性值”) 设置元素的属性名和属性值

image-20240126165340091

  • 删除属性
    getAttribute(“属性名”) 删除元素指定的属性名

image-20240126165555013

image-20240126165431459

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/649916.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金蝶云星空--写插件不重启IIS热更新简单配置指南

云星空7.5版本&#xff0c;以简单方式配置并测试了热更新的实现方式可行&#xff0c;操作如下&#xff08;7.5外版本没试过&#xff0c;大家可试下&#xff09;&#xff1a; 1、打开WebSite\App_Data\Common.config&#xff0c;修改appSettings&#xff0c;设置IsEnablePlugIn…

go slice 扩容实现

基于 Go 1.19。 go 的切片我们都知道可以自动地进行扩容&#xff0c;具体来说就是在切片的容量容纳不下新的元素的时候&#xff0c; 底层会帮我们为切片的底层数组分配更大的内存空间&#xff0c;然后把旧的切片的底层数组指针指向新的内存中&#xff1a; 目前网上一些关于扩容…

ElasticSearch 开发总结(九)——SearchType:DFS_QUERY_THEN_FETCH和QUERY_THEN_FETCH

ElasticSearch 开发总结&#xff08;九&#xff09;——SearchType&#xff1a;DFS_QUERY_THEN_FETCH和QUERY_THEN_FETCH-CSDN博客 1.SearchType ES的搜索类型 有一个类SearchType&#xff08;如下图示&#xff09;&#xff0c;关于该类的描述&#xff1a; Search type repre…

redis源码之:clion搭建cluster环境

cluster集群通常每个node节点都是一主N从的模式&#xff0c;此处为简化环境搭建&#xff0c;所有node节点均只有一个主节点。 在clion环境中&#xff0c;为方便debug&#xff0c;需要通过配置多个cmake application实现redis-server、redis-cli等源码debug模式启动。 一、配置…

费曼学习法 - 理工科的学习利器

费曼学习法是以物理学家理查德费曼&#xff08;Richard Feynman&#xff09;命名的一种高效的学习方法。它旨在帮助你深入理解复杂概念&#xff0c;并能够用简单的语言解释它们。费曼学习法是一个学习框架&#xff0c;能够帮你对给定主题进行深入理解&#xff0c;包含以下4个简…

【算法专题】动态规划之子序列问题

动态规划5.0 动态规划 - - - 子序列问题&#xff08;数组中不连续的一段&#xff09;1. 最长递增子序列2. 摆动序列3. 最长递增子序列的个数4. 最长数对链5. 最长定差子序列6. 最长的斐波那契子序列的长度7. 最长等差数列8. 等差数列划分Ⅱ - 子序列 动态规划 - - - 子序列问题…

HTML-表单

表单 概念&#xff1a;一个包含交互的区域&#xff0c;用于收集用户提供的数据。 1.基本结构 示例代码&#xff1a; <form action"https://www.baidu.com/s" target"_blank" method"get"><input type"text" name"wd&q…

宝塔部署 dvadmin3项目笔记

django-vue3-admin项目是一个优秀的基于Python和vue3的后端框架&#xff0c;可以在此基础上快速进行二次开发&#xff0c;目的是学习&#xff0c;记录通过宝塔部署该项目的一个步骤。 一、项目官网地址&#xff1a;dvadmin3 | Django-vue3-admin ​​​​​​ …

完成NAT实验

实验要求&#xff1a; 步骤一&#xff1a;配置vlan vlan b 2 3 interface GigabitEthernet 0/0/2 port link-type access port default vlan 2 interface GigabitEthernet 0/0/3 port link-type access port default vlan 3 interface GigabitEthernet 0/0/1 port link-type…

【PyTorch】使用PyTorch创建卷积神经网络并在CIFAR-10数据集上进行分类

前言 在深度学习的世界中&#xff0c;图像分类任务是一个经典的问题&#xff0c;它涉及到识别给定图像中的对象类别。CIFAR-10数据集是一个常用的基准数据集&#xff0c;包含了10个类别的60000张32x32彩色图像。在本博客中&#xff0c;我们将探讨如何使用PyTorch框架创建一个简…

C#,打印漂亮杨辉三角形(帕斯卡三角形)的源代码

杨辉 Blaise Pascal 这是某些程序员看完会哭的代码。 杨辉三角形&#xff08;Yanghui Triangle&#xff09;&#xff0c;是一种序列数值的三角形几何排列&#xff0c;最早出现于南宋数学家杨辉1261年所著的《详解九章算法》一书。 欧洲学者&#xff0c;最先由帕斯卡&#x…

Windows打开IE浏览器命令最简单的方法

问题场景&#xff1a; 许多插件或特定版本的系统需要使用ie浏览器来访问&#xff0c;window默认的ie浏览器是被禁用的如何快速打开ie浏览器解决问题 目录 问题场景&#xff1a; 测试环境&#xff1a; 检查环境是否支持&#xff1a; 问题解决&#xff1a; 方法一 方法二 方法…

03 SB实战 -微头条之首页门户模块(跳转某页面自动展示所有信息+根据hid查询文章全文并用乐观锁修改阅读量)

1.1 自动展示所有信息 需求描述: 进入新闻首页portal/findAllType, 自动返回所有栏目名称和id 接口描述 url地址&#xff1a;portal/findAllTypes 请求方式&#xff1a;get 请求参数&#xff1a;无 响应数据&#xff1a; 成功 {"code":"200","mes…

书籍 - 华杉讲透孙子兵法 - 10

第九章 行军第九 侥幸是决策者最可怕的心态 懂兵法,不一定会用兵法,因为具体时候心态不一样。 原文 行军篇 孙子曰:凡处军、相敌,绝山依谷,视生处高,战隆无登,此处山之军也。绝水必远水;客绝水而来,勿迎之于水内,令半济而击之,利;欲战者,无附于水而迎客,视生处…

三元表达式使用

介绍&#xff1a; 使用三元表达式有以下优点&#xff1a; 代码简洁&#xff1a;相比常规的if-else语句&#xff0c;三元表达式能够以更简洁的方式实现相同的功能&#xff0c;减少了代码的数量和复杂性。可读性增强&#xff1a;由于其简洁性&#xff0c;三元表达式可以使代码更…

hex 尽然可以 设置透明度,透明度参数对比图 已解决

还不知道CSS Color Module Level 4标准早在2014年就推出8位hex和4位hex来支持设置alpha值&#xff0c;以实现hex和rgba的互转。这个办法可比6位HEX转RGBA简洁多了&#xff0c;先来简单解释一下&#xff1a; 8位hex是在6位hex基础上加后两位来表示alpha值&#xff0c;00表示完全…

【langchain】实战笔记-Langchain-Chatchat win10本地部署FAQ(持续更新)

在发布了《 Langchain-Chatchat-win10本地安装部署成功笔记&#xff08;CPU&#xff09;》后&#xff0c;有不少同学给我私信&#xff0c;说根据我的文档安装成功&#xff0c;也有不少人在安装过程报错了&#xff0c;我的文章是基于V0.2.6版本写的&#xff0c;大部分都是因为升…

Hadoop-MapReduce-MRAppMaster启动篇

一、源码下载 下面是hadoop官方源码下载地址&#xff0c;我下载的是hadoop-3.2.4&#xff0c;那就一起来看下吧 Index of /dist/hadoop/core 二、上下文 在上一篇<Hadoop-MapReduce-源码跟读-客户端篇>中已经将到&#xff1a;作业提交到ResourceManager&#xff0c;那…

自动化报告的前奏|使用python-pptx操作PPT(一)

自动化报告先从python-pptx开始 文章目录 1 python-pptx的基础属性1.1 新建幻灯片1.1.1 幻灯片布局的样式1.1.2 修改pptx模版大小1.1.3 指定模版生成1.1.4 创建幻灯片背景1.1.5 创建幻灯片备注信息1.1.6 设置幻灯片标题1.2 一些ppt元素/组件1.2.1 特殊符号1.2.2 placeholders1.…