API-事件对象

学习目标:

  • 掌握事件对象

学习内容:

  1. 获取事件对象
  2. 事件对象常用属性
  3. trim方法
  4. 案例

获取事件对象:

  • 事件对象是什么

也是个对象,这个对象里有事件触发时的相关信息。

例如:鼠标点击事件中,事件对象就存了鼠标点在哪个位置等信息。
  • 使用场景
    可以判断用户按下哪个键。

    比如按下回车键可以发布新闻
    

    可以判断鼠标点击了哪个元素,从而做相应的操作。

  • 语法:如何获取

在事件绑定的回调函数的第一个参数就是事件对象。

一般命名为eventeve

//e是事件对象元素.addEventListener('click', function (e) {})
 <title>事件对象</title>
</head><body><button>点击</button><script>const btn = document.querySelector('button')btn.addEventListener('click', function (e) {console.log(e)})</script></body>

事件对象常用属性:

  • 部分常用属性
type获取当前的事件类型
clientX/clientY获取光标相对于浏览器可见窗口左上角的位置
offsetX/offsetY获取光标相对于当前DOM元素左上角的位置
key用户按下的键盘键的值,现在不提倡使用keyCode
 <title>事件对象常用属性</title>
</head><body><input type="text"><script>const input = document.querySelector('input')input.addEventListener('keyup', function (e) {// console.log(e.key)if (e.key === 'Enter') {console.log('我按下了回车键')}})</script>
</body>

trim方法:

 <title>trim方法</title>
</head><body><textarea name="" id="" cols="30" rows="10"></textarea><script>const str = '           pink'// console.log(str.trim()) //trim  去除左右的空格const tx = document.querySelector('textarea')tx.addEventListener('keyup', function (e) {// console.log(tx.value)if (e.key === 'Enter') {console.log(tx.value.trim() === '') //true}})</script></body>

案例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>练习-评论回车发布</title><style>.wrapper {min-width: 400px;max-width: 800px;display: flex;justify-content: flex-end;}.avatar {width: 48px;height: 48px;border-radius: 50%;overflow: hidden;background: url(./images/avatar.jpg) no-repeat center / cover;margin-right: 20px;}.wrapper textarea {outline: none;border-color: transparent;resize: none;background: #f5f5f5;border-radius: 4px;flex: 1;padding: 10px;transition: all 0.5s;height: 30px;}.wrapper textarea:focus {border-color: #e4e4e4;background: #fff;height: 50px;}.wrapper button {background: #00aeec;color: #fff;border: none;border-radius: 4px;margin-left: 10px;width: 70px;cursor: pointer;}.wrapper .total {margin-right: 80px;color: #999;margin-top: 5px;opacity: 0;transition: all 0.5s;}.list {min-width: 400px;max-width: 800px;display: flex;}.list .item {width: 100%;display: flex;}.list .item .info {flex: 1;border-bottom: 1px dashed #e4e4e4;padding-bottom: 10px;}.list .item p {margin: 0;}.list .item .name {color: #FB7299;font-size: 14px;font-weight: bold;}.list .item .text {color: #333;padding: 10px 0;}.list .item .time {color: #999;font-size: 12px;}</style>
</head><body><div class="wrapper"><i class="avatar"></i><textarea id="tx" placeholder="发一条友善的评论" rows="2" maxlength="200"></textarea><button>发布</button></div><div class="wrapper"><span class="total">0/200</span></div><div class="list"><div class="item" style="display: none;"><i class="avatar"></i><div class="info"><p class="name">清风徐来</p><p class="text">大家都辛苦啦,感谢各位大大的努力,能圆满完成真是太好了[笑哭][支持]</p><p class="time">2022-10-10 20:29:21</p></div></div></div><script>const tx = document.querySelector('#tx')const total = document.querySelector('.total')const item = document.querySelector('.item')const text = document.querySelector('.text')//1.当我们文本域获得了焦点,就让total 显示出来tx.addEventListener('focus', function () {total.style.opacity = 1})//2.当我们文本域失去了焦点,就让total 隐藏出来tx.addEventListener('blur', function () {total.style.opacity = 0})//3.检测用户输入tx.addEventListener('input', function () {// console.log(tx.value.length)  得到输入的长度total.innerHTML = `${tx.value.length}/200字`})//4.按下回车发布评论tx.addEventListener('keyup', function (e) {//只有按下的是回车键,才会触发if (e.key === 'Enter') {//如果用户输入不为空就显示和打印if (tx.value.trim() !== '') {item.style.display = 'block'// console.log(tx.value) //用户输入的内容text.innerHTML = tx.value}//等我们按下回车,结束,清空文本域tx.value = ''//按下回车之后,就要把字符统计 复原total.innerHTML = '0/200字'}})</script></body></html>

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

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

相关文章

未来几年大多数人会面临的困境

未来几年&#xff0c;以下几个社会现象将会成为现实&#xff0c;希望这些相关行业的从业者早做准备&#xff0c;未雨绸缪。 一、就业难将会成为常态 就业将会越来越难、最近三年曾经如日中天的互联网企业在裁员降薪、曾经的用工大户也在裁员、不少倒闭破产的中小企业主也加入…

蓝牙ble数传芯片推荐,TD5327A芯片蓝牙5.1—拓达半导体

蓝牙数传芯片TD5327A芯片是一款支持蓝牙BLE的纯数传芯片&#xff0c;蓝牙5.1版本。芯片的亮点在于性能强&#xff0c;除了支持APP端直接对芯片做设置与查询操作&#xff0c;包括直接操作蓝牙芯片自身的IO与PWM口以外&#xff0c;还支持RTC日历功能&#xff0c;可以做各类定时类…

深度学习工具jupyter的new没有环境选项以及遇到的EnvironmentLocationNotFound:Not such a environment

jupyter安装使用 安装完Anaconda&#xff08;安装Anaconda具体请参考其他教程&#xff09;后&#xff0c;一般默认有安装jupyter打开 注意当前是base环境&#xff0c;后期使用jupyter需要切换环境 我们找到文件地址。用记事本打开 可以搜索&#xff1a;c.NotebookApp.noteb…

Redis规范

1 键值对的建议 1.1、key名建议&#xff1b; 建议key name设计&#xff1a;业务名:表名:id 比如&#xff1a; set school:student:1 martin 要求&#xff1a;不包含特殊字符 1.2、string 类型控制在10 KB以内&#xff0c;hash、list、set、zset元素个数不要超过5000&#…

C++的工厂模式与建造者模式连用

设计模式 工厂模式与建造者模式连用工厂模式建造者模式具体使用 工厂模式与建造者模式连用 工厂模式 工厂模式&#xff1a;是一种常用的设计模式&#xff0c;它属于创建型设计模式&#xff0c;旨在将对象的创建过程与使用过程分离&#xff0c;以实现解耦和灵活性。工厂模式通…

在Ubuntu 14.04上安装和配置SNMP守护程序和客户端的方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 介绍 作为系统管理员的重要工作之一是收集关于服务器和基础设施的准确信息。有许多工具和选项可用于收集和处理这种类型的信息。其中许…

数据库期末复习知识点

A卷 1. 选择题(30) 2. 判断范式(10) 判断到第三范式 3. 程序填空(20) 4. 分析填空(15) 5. 写SQL(25) 5一题 恶性 B卷 1. 单选(30) 2. 填空 (20) 3. 程序填空(20) 4. 写SQL(30) 知识点 第一章 数据库管理系统(DBMS) 主要功能 数据定义功能 (DDL, 数据定义语言, …

linux 登录ftp报Received message too long 1416128883

在linux 登录ftp报Received message too long 1416128883 [rootlocalhost ~]# sftp oaftp172.20.xx.xx解决办法&#xff1a; [rootlocalhost ~]# usermod -s /bin/bash oaftp[rootlocalhost ~]# systemctl restart vsftpd.service[rootlocalhost ~]# sftp oaftp172.20.xx.xx完…

JavaWeb系列十六: jQuery初步入门

跟老韩-JavaScript开发利器之jQuery 1.1 原理示意图1.2 快速入门1.2 什么是jquery对象1.3 dom对象转jQuery对象1.4 jQuery对象转dom对象 jQuery是一个快速的, 简洁的javaScript库, 使用户能更方便地处理HTML, css, dom…提供方法, events, 选择器, 并且方便地为网站提供AJAX交互…

【ElasticSearch】ElasticSearch实战

初步检索 检索 ES 信息 1&#xff09;、GET /_cat/nodes&#xff1a;查看所有节点 127.0.0.1 44 83 1 0.01 0.01 0.00 dilm * 1b06a843b8e3 *代表主节点 2&#xff09;、GET /_cat/health&#xff1a;查看健康状况 1718265331 07:55:31 elasticsearch yellow 1 1 4 4 0 0…

ansible archive模块

用于创建归档文件的模块。它允许你在目标主机上创建tar、zip、gzip、bzip2、xz等类型的归档文件。解压使用unarchive模块。 path&#xff1a;要打包的源目录或文件的路径。&#xff08;可以是单个文件或目录&#xff0c;也可以是包含多个文件和目录的列表。&#xff09;dest&am…

告别单张OCR,Umi-OCR让你轻松实现批量识别!

大家好&#xff0c;今天我要给大家介绍一款强大的OCR识别软件——Umi-OCR。相信很多朋友都用过QQ、微信或天若OCR等应用来进行图片文字识别&#xff0c;但你是否遇到过需要批量识别图片文字时&#xff0c;这些软件却无法满足你的需求呢&#xff1f;今天&#xff0c;这个问题将迎…

LeetCode 算法:二叉树的中序遍历 c++

原题链接&#x1f517;&#xff1a;二叉树的中序遍历 难度&#xff1a;简单⭐️ 题目 给定一个二叉树的根节点 root &#xff0c;返回 它的 中序 遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[1,3,2] 示例 2&#xff1a; 输入&…

Spring数据访问架构设计解析

一、Spring JDBC 数据访问 1、简化了jdbc操作&#xff0c;定义了模板类JdbcTemplate 2、提高开发效率&#xff0c;构建了嵌入式数据源EmbeddedDatabase 3、统一底层异常结构DataAccessException 二、Spring事物管理器 声明式事物&#xff0c;Aop原理简化开发 三、Spring …

go sync包(三) 读写锁(二)

读写锁 RWMutex 写锁 加锁 RWMetex 的写锁复用了 Mutex&#xff1a; // Lock locks rw for writing. // If the lock is already locked for reading or writing, // Lock blocks until the lock is available. func (rw *RWMutex) Lock() {if race.Enabled {_ rw.w.state…

Selenium 选择器定位元素方式详解

Selenium 选择器定位元素方式详解 在自动化测试中&#xff0c;定位网页元素是一个至关重要的步骤。Selenium 提供了多种选择器来帮助我们精确地找到页面上的元素。以下将详细介绍各种选择器的用法和区别&#xff0c;包括 ID、XPATH、LINK_TEXT、PARTIAL_LINK_TEXT、NAME、TAG_…

将Windows11右键菜单修改为Windows10风格

Windows11更新后&#xff0c;右键菜单很多功能隐藏起来了&#xff0c;使用时需要点击“显示更多选型”才能获取完整功能。为了能获得Windows10右键菜单丝滑的体验&#xff0c;我总结了以下方法。 方法一&#xff1a;控制台操作法 按住winR打开运行窗口 输入cmd&#xff0c;…

区间问题——905. 区间选点

目录 区间问题 定义 运用情况 注意事项 解题思路 AcWing 905. 区间选点 题目描述 运行代码 代码思路 改进思路 其它代码 代码思路 区间问题 定义 区间通常是指一个连续的范围&#xff0c;可以用数轴上的一段来表示。 运用情况 在数学中广泛用于表示变量的取值范…

未系安全带智能监测摄像机

未系安全带智能监测摄像机在现代安全管理中发挥着至关重要的作用。这些先进设备不仅仅是简单的监视工具&#xff0c;更是通过整合高级技术来提升工作效率和安全性&#xff0c;特别是在需要高度警惕的作业环境中尤为突出。 首先&#xff0c;这些智能监测摄像机配备了精准的视觉识…

SOLIDWORKS专业版2024价格

SOLIDWORKS Professional 专业版&#xff0c;带有 ECAD/MCAD 协作、自动成本估算、协作功能、设计和工程图检查、复杂的零部件库以及高级真实感渲染。 1. ECAD/MCAD协作&#xff1a;SOLIDWORKS专业版提供了强大的ECAD/MCAD协作功能&#xff0c;使得设计团队可以更高效地进行跨…