首页 > 其他分享 >js之事件监听以及相关案例

js之事件监听以及相关案例

时间:2024-06-12 17:30:46浏览次数:12  
标签:触发 鼠标 uname random js 案例 事件 监听

这里写目录标题

一级目录

二级目录

三级目录

Web APIs02

一、事件监听

1.定义

就是让程序检测是否有事件产生,一旦有事件触发,就立即调用一个函数做出响应,也称为注册事件

2.调用语法

元素对象.addEventListener(‘事件类型’,要执行的函数)

3.事件监听三要素

事件源(元素对象):那个dom元素被事件触发了,首先要获取dom元素
事件类型:用什么方式触发,比如鼠标单击cick、鼠标经过mouseover等
事件调用的函数:要做什么事

4.事件监听版本

DOM LO
事件源.on事件=function(){}
DOM L2
事件源.addEventListener(事件,事件处理函数)
区别:
on方式会被覆盖,addEventListener方式可绑定多次,拥有事件更多特性,推荐使用

二、事件类型

鼠标事件:鼠标触发
click鼠标点击,mouseenter鼠标经过,mouseleave鼠标离开

焦点事件:表单获得光标
focus获得焦点,blur失去焦点

键盘事件:键盘触发
Keydown键盘按下触发,Keyup键盘抬起触发

文本事件:表单输入触发
input用户输入事件

js自动调用点击事件 click():
例如:自动播放模块
setInterval(function(){
next.click()//next为右箭头的对象
},1000)

随机点名之事件监听版本

案例要求

不断点击开始结束从已定数组中抽取人,已被抽取的人要从原定数组中去除,直至数组中只剩最后一个人,禁用按钮,停止抽取

大致思路

先获取dom对象

需要开始、结束按钮和更改人名的盒子

理解程序运行

鼠标点击的事件类型触发事件监听,事件源为“开始”按钮,触发函数为每隔0.1秒更换一个人名,利用定时器函数,不断更改uname的人名,同理,当我们点击“结束”按钮时,关闭定时器,并且将此人名从数组中移除
注意,当数组长度为1时,禁用开始和结束按钮,由于两次事件监听都需要定时器函数,所以设置定时器函数为全局变量,随机数同理

完整代码

<!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>
        .big {
            margin:100px auto;
            width: 300px;
            height: 500px;
        }
        .start,
        .end {
            width: 100px;
            height: 50px;
        }
        .uname {
            /* background-color: pink; */
            width: 200px;
            height: 100px;
        }
    </style>
</head>
<body>
    <div class="big">
        <div class="box">
            <div>这次会是谁呢</div>
            <div class="uname">ddd</div>
        </div>
        <div class="btn">
            <button class="start">开始</button>
            <button class="end">结束</button>
        </div>
    </div>
    <script>
        const arr=['a','b','c','d','e','f']
        let random=0
        let timer=0
        const uname=document.querySelector('.uname')
        const start=document.querySelector('.start')
        start.addEventListener('click',function(){
            timer=setInterval(function(){
                random=Math.floor(Math.random()*arr.length)
                uname.innerHTML=arr[random]
            },100)
            if(arr.length===1){
                start.disabled=end.disabled=true
            }
        })
        const end = document.querySelector('.end')
        end.addEventListener('click',function(){
            clearInterval(timer)
            arr.splice(random,1)
        })
    </script>
</body>
</html>

标签:触发,鼠标,uname,random,js,案例,事件,监听
From: https://blog.csdn.net/2302_80141844/article/details/139631923

相关文章

  • JSON 和对象的互转(fastjson2 的简单使用)
    fastjson2的简单使用导包随便挑个版本<dependency><groupId>com.alibaba.fastjson2</groupId><artifactId>fastjson2</artifactId><version>2.0.25</version></dependency>使用单个对象Stringstr=JSON.toJSONString......
  • 阿里巴巴中国站关键字搜索API返回值应用案例:精准定位目标用户群体
    阿里巴巴中国站的关键字搜索API返回值在精准定位目标用户群体方面,具有广泛的应用案例。这些应用案例主要集中在以下几个方面:数据分析与市场调研:通过关键字搜索API,商家可以获取大量与特定商品或服务相关的搜索数据。对这些数据进行深度分析,可以了解目标用户群体的搜索习惯......
  • 群辉Nas搭建操作案例
    很多时候,nas硬盘坏了,我们更换了新的硬盘以后,如何让nas来继续恢复它原来的工作呢?现在所有的数据都已经完美的抢救回来了恢复好了,客户希望这台nas能恢复正常工作,采购了四块全新的硬盘,我们现在的做法就是要把这个四块盘重新放到nas里面,重新安装系统,重新配置raid5,把系统架构好后再把......
  • nodejs下载依赖npm install报错
    npminstall报错,解决记录_npmwarnusing--forcerecommendedprotectionsdis-CSDN博客先切换镜像源,然后清理缓存,在使用npm命令注意前面可能爆粗哦的原因大概率是权限问题,所以采用这种解决方式加上面合体:解决:安装vueCLI不成功时,执行npmcleancache-force清除缓存命令无效_n......
  • 《UML基础、案例与应用》习题记录-第12章
    部分习题,使用visio或plantuml,非正确答案,仅供参考,欢迎评论,谢绝转载。第12章构件图12.8.2习题1.构件图       2. ......
  • 先获取行高和文本的高度,然后通过js动态修改样式实现文本超出一行后显示省略号,这样就可
    <template> <div> <el-tooltip class="box-item" effect="dark" :content="scope.row[prop]" placement="top-start" append-to=".m-table" :teleported="true" :disabl......
  • 【Cesium】Vue+js+Cesium实现海康监控视频云台控制
    1.硬件设备与视频流接入    如需要一步上一篇博客【Cesium】Vue+js+Cesium实现监控视频流接入-CSDN博客文章浏览阅读308次,点赞12次,收藏17次。Vue2+js+Cesium实现监控视频流接入与相机云台控制https://blog.csdn.net/weixin_51540717/article/details/139614406?csdn_......
  • 一个完整回归机器学习案例
    如何端到端解决预测建模机器学习问题?我们将通过一个案例研究Python中的回归预测建模问题,包括应用机器学习过程的每一步。完成这个项目后,我们要知道:如何端到端解决回归预测建模问题如何使用数据转换来提高模型性能如何使用算法调优来提高模型性能如何使用集成方法和集......
  • 全国省市区县列表最新JSON2024最新
    2024最新JSON数据,2024年更新中国总共有23个省、5个自治区、4个直辖市、2个特别行政区。最近需要用到中国城市列表的json串数据,费了不少时间,终于得到了比较全面的数据暂时应该没有比我更全的了~~~得出以下数据json格式,XML格式(包含省市,县级市,县),总数:2893个因为JSON串比较长,有1......
  • vue-json-excel 导出功能
    导出功能1.在vue中使用以下命令安装excel插件npminstallvue-json-excel-S2.在main.js文件中配置全局组件importJsonExcelfrom'vue-json-excel'Vue.component('downloadExcel',JsonExcel)3.在需要导出的.vue页面使用 <download-excel></download-excel><downl......