JavaWeb-js(4)

js事件

在前端页面中,js程序大多数是由事件来驱动的,当触发某些事件的时候,可以使用js负责响应。

js事件由三部分组成: 
    事件源——》指的是被触发的对象; 
    事件类型——》如何触发的事件,如:鼠标单击、双击、键盘操作等; 
    事件处理程序——》触发事件以后,使用一个函数来处理。 

因此事件步骤: 
    1. 获取事件源对象; 
    2. 注册事件;
    3. 添加处理程序。 

事件类型

 

 

 

事件的注册方式

1.静态注册 在html标签中注册 (如果元素是通过js创建的 ,就没法这样注册)

2.动态注册 在js代码中注册

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box{width: 200px;height: 200px;background-color: aqua;}</style></head><body><!-- onclick 单击事件 --><button onclick="clickEvent()" ondblclick="dblclickEvent()">我是按钮</button><input id="phone-input" onfocus="focusEvent()" onblur="blurEvent()"><span id="check-text" style="display: none;">格式正确</span><div class="box" onmouseover="mouseoverEvent()"onmouseout="mouseoutEvent()"></div></body>
<script>//入口函数//可以方式js代码 先于html代码加载 导致 元素获取失败的问题window.onload = function () {console.log('加载完成了')console.log(document.querySelector('button'))}function clickEvent() {console.log('单击')}function dblclickEvent() {console.log('双击')}function focusEvent() {console.log('获取到焦点')console.log('请输入手机号')}function blurEvent() {//当失去焦点的时候验证手机号正确性console.log('开始验证手机号');let phoneInput = document.getElementById('phone-input')let phone = phoneInput.valuelet text = document.getElementById('check-text');text.style.display = 'inline';//验证手机号let reg = /^1[3456789]\d{9}$/if (reg.test(phone)) {text.innerText = '格式正确'text.style.color = '#00acff'} else {text.innerText = '格式有误'text.style.color = 'red'}}function mouseoverEvent(){console.log('鼠标划入')}function mouseoutEvent(){console.log('鼠标划出')}
</script></html>
 // false代表 事件冒泡 从下往上 默认的// true代表 事件捕获, 从上往下 document.getElementById('one').addEventListener('click', function () {console.log('one被点击了')},false)document.getElementById('two').addEventListener('click', function () {console.log('two被点击了')},false)document.getElementById('three').addEventListener('click', function () {console.log('three被点击了')},false)

option

false的话 就是事件冒泡了 从子元素到父元素
true的话   就是事件捕获 从父到子!

true 的触发顺序总是在 false 之前;
•如果多个均为 true,则外层的触发先于内层;
•如果多个均为 false,则内层的触发先于外层。

Event事件对象

事件对象e,是event的简称。当一个事件被触发时候,这个事件的有关数据都会被存储在一个事件对象e里面,这个对象e有许多固定方法提供给我们查看里面各种数据。 

Bom操作

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body{height: 3000px;}.top-layout{width: 100%;height: 80px;background-color: blue;display: none;position: fixed;top: 0;}.goTop-btn{width: 50px;height: 50px;background-color: blue;border-radius: 50%;position: fixed;right: 100px;bottom: 100px;display: none;}</style>
</head>
<body><div class="top-layout"></div><div class="goTop-btn"></div></body><script>/*bom代表操作浏览器页面的放大缩小 , 页面的滚动, 浏览器加载情况*///监听浏览器加载完毕 方式1window.onload = function(){}//方式2window.addEventListener('load',function(){})//监听浏览器大小的改变window.addEventListener('resize',function(e){// console.log(window.innerWidth,window.innerHeight)})//获取 顶部栏目 和 按钮let topBtn= document.querySelector('.goTop-btn')let topLayout= document.querySelector('.top-layout');//监听浏览器滚动条滚动window.addEventListener('scroll',function(e){//获取当前滚动条的滑动距离let top = document.documentElement.scrollTop;if(top>1000){topLayout.style.display='block'topBtn.style.display='block'}else{topLayout.style.display='none'topBtn.style.display='none'}})//点击按钮 回到顶部topBtn.addEventListener('click',function(){window.scrollTo({top:0,behavior:"smooth"})})
</script>
</html>

定时器

  //定时器 1 setTimeout// function 延迟执行的函数,延迟的时间 let timeOut  =   setTimeout(function(){console.log(123)// 清除定时器// clearTimeout(this);},2000);function clearTime(){clearTimeout(timeOut);}
 // 循环执行的定时器:轮播图,倒计时,循环请求let setTime=  setInterval(function(){console.log("我被执行了")},1000)function clearTime(){clearInterval(setTime)}

 

 

 

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

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

相关文章

钓鱼网站制作-克隆163企业邮箱

这里克隆163企业邮箱比较费劲&#xff0c;和之前的还不一样&#xff0c;这个克隆的目录比较多&#xff0c;发现好多工具都克隆不全&#xff0c;要不就是缺少图片要不就是缺少功能 首先效果 可以看到成功记录账户密码&#xff0c;接下来再来伪装到域名 这里克隆网站使用神器 …

stm32使用单通道规则组ADC

Driver_ADC.c 如果需要关闭adc转换&#xff0c;只需要设置CNT&#xff0c;将其置为0&#xff0c;后面再转换一次就停止了。 #include "Driver_ADC.h"void Driver_ADC1_Init(void) {/* 1. 时钟配置 *//* 1.1 adc时钟 */RCC->APB2ENR | RCC_APB2ENR_ADC1EN;RCC-&g…

bev 之 fastBEV

前面我们提到bev 之 LSS, 知道视觉的BEV方案的主要痛点在于: 1、depth 的预测 2、图像特征到BEV特征之间的视图变换消耗大量计算 LSS 为什么需要D维深度 占据大量消耗的原因是LSS 对每个图像特征点引入深度D&#xff0c;即假设每个像素上存在可能的D维深度。也就是假设不同像…

ubuntu18虚拟机克隆后不能上网和磁盘损坏问题

小学期直接给学弟学妹们自己配好的克隆的虚拟机&#xff0c;结果出现了这两种问题&#xff0c;参考了网上好多资料&#xff0c;太多了忘了存了&#xff0c;花了好久的时间才解决&#xff0c;这里记录一下。 磁盘损坏问题&#xff1a; 网络无法连同问题&#xff0c;ip addr发现…

特征融合篇 | YOLOv10改进之在Neck网络中添加加权双向特征金字塔BiFPN

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。在计算机视觉任务中&#xff0c;特征金字塔网络&#xff08;FPN&#xff09;是一种常用的方法&#xff0c;它通过构建不同尺度的特征图来捕获不同尺度的目标。然而&#xff0c;传统的FPN存在一些缺点&#xff0c;如特征融合…

解锁Postman的API参数化:动态请求的秘诀

&#x1f511; 解锁Postman的API参数化&#xff1a;动态请求的秘诀 在API测试的世界里&#xff0c;参数化是构建灵活、可重用请求的关键。Postman作为API开发和测试的领军工具&#xff0c;提供了强大的参数化功能&#xff0c;允许用户创建动态、个性化的API请求。本文将深入探…

计算机网络--tcpdump和iptable设置、内核参数优化策略

tcpdump工具 tcpdump命令&#xff1a; 选项字段&#xff1a; 过滤表达式&#xff1a; 实用命令&#xff1a; TCP三次握手抓包命令&#xff1a; #客户端执行tcpdump 抓取数据包 tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcapnetstat命令 netst…

7.10飞书一面面经

问题描述 Redis为什么快&#xff1f; 这个问题我遇到过&#xff0c;但是没有好好总结&#xff0c;导致答得很乱。 答&#xff1a;Redis基于内存操作&#xff1a; 传统的磁盘文件操作相比减少了IO&#xff0c;提高了操作的速度。 Redis高效的数据结构&#xff1a;Redis专门设计…

java算法day11

二叉树的递归遍历二叉树的非递归遍历写法层序遍历 递归怎么写&#xff1f; 按照三要素可以保证写出正确的递归算法&#xff1a; 1.确定递归函数的参数和返回值&#xff1a; 确定哪些参数是递归的过程中需要处理的&#xff0c;那么就在递归函数里加上这个参数&#xff0c; 并且…

第二证券:销量暴跌95%,这一巨头市值蒸发超3000亿元!

在多重要素刺激下&#xff0c;PCB工作站上风口。 波音销量堕入停滞 6月仅售出3架客机 据央视财经&#xff0c;在一系列丑闻的影响下&#xff0c;波音公司本年出售遭到明显冲击。当地时间9日&#xff0c;波音发布的数据闪现&#xff0c;在以前一个月&#xff0c;该公司仅卖出…

关于Java面向对象的一些问题(2024.7.10)

package question20240710;public class Question {/*1. 什么叫做多态&#xff0c;条件是什么&#xff1f;2. 使用多态特性&#xff0c;带来了什么样的好处&#xff1f;3. 使用多态特性&#xff0c;注意什么样的弊端&#xff1f;4. 关于多态的弊端我们如何解决&#xff1f;5. 在…

excel有条件提取单元格特定文本(筛选纯文字的单元格或含有数字的单元格、单元格提取不同的文本长度)

实际工作背景 需要对导出的银行流水中的数十个村以及对应的村小组进行分组统计&#xff0c;但是初始的表格中村和小组是混在一起的&#xff0c;如下图所示&#xff1a; 目的&#xff1a;将大树村和大树村小组名称分别筛选出来 1.观察发现&#xff0c;大树村小组的单元格第4…

代码随想录算法训练营第四十九天| 647. 回文子串、 516.最长回文子序列

647. 回文子串 题目链接&#xff1a;647. 回文子串 文档讲解&#xff1a;代码随想录 状态&#xff1a;不会 思路&#xff1a; dp[i][j] 表示字符串 s 从索引 i 到索引 j 这一段子串是否为回文子串。 当s[i]与s[j]不相等&#xff0c;那没啥好说的了&#xff0c;dp[i][j]一定是fa…

构建与操作共享栈

归纳编程学习的感悟, 记录奋斗路上的点滴, 希望能帮到一样刻苦的你! 如有不足欢迎指正! 共同学习交流! 🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝既然选择了远方,当不负青春,砥砺前行! 共享栈是一种优化的栈实现方式,它允许两个或多个栈共享同一段连续的内存空间…

Tkinter 部件使用教程

tkinter学习教程 C语言中文网Tkinter教程 菜鸟编程-Python GUI编程(Tkinter) tkinter基本组件 messagebox 【tkinter标准对话框】messagebox&#xff1a;信息传递&#xff0c;消息对话框&#xff01; bind bind事件信息 listbox Tkinter 组件详解之Listbox radiobutton Tkinter…

数据结构——Trie

题目&#xff1a; 维护一个字符串集合&#xff0c;支持两种操作&#xff1a; I x 向集合中插入一个字符串 x&#x1d465;&#xff1b;Q x 询问一个字符串在集合中出现了多少次。 共有 N&#x1d441; 个操作&#xff0c;所有输入的字符串总长度不超过 10^5&#xff0c;字符串仅…

【分布式系统】Ceph对象存储系统之RGW接口

目录 一.对象存储概述 二.创建RGW接口 1.在管理节点创建一个 RGW 守护进程 2.创建成功后默认情况下会自动创建一系列用于 RGW 的存储池 3.默认情况下 RGW 监听 7480 号端口 4.开启 httphttps &#xff0c;更改监听端口 5.在 rgw 节点上查看端口 6.在客户端访问验证 7.…

Mybatis study

一、Mybatis Plus mybatis-plus指定实体类字段不查询 加标签 TableField(exist false) Spring Data Jpa学习 干我们这行&#xff0c;啥时候懈怠&#xff0c;就意味着长进的停止&#xff0c;长进的停止就意味着被淘汰&#xff0c;只能往前冲&#xff0c;直到凤凰涅槃的一天&am…

【onnx】onnxruntime-gpu无法使用问题

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 onnxruntime-gpu无法使用 1. 正文 CUDA版本&#xff1a;12.1 nvcc -VCUDNN的版本 cat /usr/include/cudnn_version.h |grep CUDNN_MAJOR -A 2说明: 可…

C#中的Dictionary

Dictionary<TKey, TValue> 是一个泛型集合&#xff0c;它存储键值对&#xff08;key-value pairs&#xff09;&#xff0c;其中每个键&#xff08;key&#xff09;都是唯一的。这个集合类提供了快速的数据插入和检索功能&#xff0c;因为它是基于哈希表实现的。 注意 ke…