js 鼠标和键盘事件
鼠标事件
聚焦事件
<input type="text" id="box1">
<script>
var box1 = document.getElementById("box1");
function Hello () {
alert("Hello,小潘");
}
box1.addEventListener("focus",Hello, false);
</script>
离焦事件
<input type="text" id="box1">
<script>
var box1 = document.getElementById("box1");
function Hello () {
alert("Hello,小潘");
}
box1.addEventListener("blur",Hello, false);
</script>
鼠标单击和双击
<div id="box1"></div>
<script>
var box1 = document.getElementById("box1");
function Hello () {
console.log('单击');
}
box1.addEventListener("click",Hello, false);
box1.addEventListener("dblclick", () => {
console.log('双击');
}, false);
</script>
这里会出现一个问题,如果只双击的话,会先执行两次单击事件再执行双击事件
下面提供一个解决办法
<div id="box1"></div>
<script>
var box1 = document.getElementById("box1");
var time;
box1.addEventListener("click", () => {
clearTimeout(time);
time = setTimeout( () => {//利用定时器延迟
console.log('单击');
},300);
}, false);
box1.addEventListener("dblclick", () => {
clearTimeout(time);//再定时器生效前将它去除
console.log('双击');
}, false);
</script>
鼠标的其他事件
<ul>
<li>鼠标进入变红色</li>
<li>鼠标离开变蓝色</li>
<li>鼠标按下字体放大两倍</li>
<li>鼠标抬起字体缩小两倍</li>
</ul>
<script>
var li = document.getElementsByTagName("li");
for (var i = 0; i < li.length; i++) {
li[i].addEventListener("mouseover" ,function() {//匿名函数this不存在
this.style.backgroundColor = 'red';
},false);
li[i].addEventListener("mouseout" ,function() {
this.style.backgroundColor = 'blue';
},false);
li[i].addEventListener("mousedown" ,function() {
this.style.fontSize = parseInt(getComputedStyle(this,null).fontSize) * 2 +"px";
},false);
li[i].addEventListener("mouseup" ,function() {
this.style.fontSize = parseInt(getComputedStyle(this,null).fontSize) / 2 +"px";
},false);
li[i].addEventListener("mouseover" ,function() {
},false);
document.addEventListener("mousemove" , function () {
console.log("鼠标在移动");
})
}
</script>
【注】如果鼠标按下后把鼠标移出再抬起,则字体放大后不会再缩小
鼠标事件对象
<script>
document.addEventListener("click", function(e) {//e为传入是事件
var event = e || window.event;//IE浏览器e不存在
console.log(event);
}, false);
</script>
部分属性如下:
| 属性/方法 | 说明 |
|---|---|
| clientx | 浏览器可视窗口水平方向的坐标 |
| clientY | 浏览器可视窗口垂直方向的坐标 |
| pageX | 页面中水平方向的坐标 |
| pageY | 页面中垂直方向的坐标 |
| screenX | 电脑屏幕水平方向的坐标 |
| screenY | 电脑屏幕垂直方向的坐标 |
| button | 0、左键 1滚轮键 2右键 |
键盘事件
<script>
document.addEventListener("keydown", function(e) {//e为传入是事件
var event = e || window.event;//IE浏览器e不存在
console.log(event);
}, false);
</script>
从输出可以看出,event是一个对象,里面有很多成员,可以根据成员里面的值来判断按下的键是什么
js 鼠标和键盘事件的更多相关文章
- JS 鼠标、键盘事件对象
鼠标事件对象 mouseEvent鼠标事件对象 e.clientX 在可视区的x和y的坐标 e.pageX 在页面文档的X和Y的坐标 <script> docume ...
- js鼠标、键盘事件实例代码
1. 鼠标的哪个按键被点击? <html> <head> <script type="text/javascript"> function wh ...
- C#/winform 自动触发鼠标、键盘事件
要在C#程序中触发鼠标.键盘事件必须要调用windows函数. 一.鼠标事件的触发 1.引用windows函数mouse_event /// <summary> /// 鼠标事件 /// ...
- js中获取键盘事件【转】
<script type="text/javascript" language=JavaScript charset="UTF-8"> 2 docu ...
- Selenium WebDriver 中鼠标和键盘事件分析及扩展(转)
本文将总结 Selenium WebDriver 中的一些鼠标和键盘事件的使用,以及组合键的使用,并且将介绍 WebDriver 中没有实现的键盘事件(Keys 枚举中没有列举的按键)的扩展.举例说明 ...
- java鼠标与键盘事件监听
package cn.stat.p3.windowdemo; import java.awt.Button; import java.awt.FlowLayout; import java.awt.F ...
- js中获取键盘事件
<script type="text/javascript" language=JavaScript charset="UTF-8"> docume ...
- HTML5 Canvas鼠标与键盘事件
演示HTML5 Canvas鼠标事件,获取Canvas对象上的鼠标坐标,演示键盘事件 通过键盘控制Canvas上对象移动. Canvas对象支持所有的JavaScript的鼠标事件,包括鼠标点击(Mo ...
- OSX 鼠标和键盘事件
本文转自:http://www.macdev.io/ebook/event.html 事件分发过程 OSX 与用户交互的主要外设是鼠标,键盘.鼠标键盘的活动会产生底层系统事件.这个事件首先传递到IOK ...
随机推荐
- python爬虫与mysql,mongobd(1)(2)第一个视频python_pymysql 安装与使用类型,import解决 问题之模块引ru 就是解决你的问题
import pymysql.cursors ''' 1.创建连接 2.创建游标 3.执行sql 5.接受结果 ''' # 1.连接 connection =pymysql.Connect( # 域名 ...
- 鸿蒙内核源码分析(字符设备篇) | 字节为单位读写的设备 | 百篇博客分析OpenHarmony源码 | v67.01
百篇博客系列篇.本篇为: v67.xx 鸿蒙内核源码分析(字符设备篇) | 字节为单位读写的设备 | 51.c.h.o 文件系统相关篇为: v62.xx 鸿蒙内核源码分析(文件概念篇) | 为什么说一 ...
- AT4353-[ARC101D]Robots and Exits【LIS】
正题 题目链接:https://www.luogu.com.cn/problem/AT4353 题目大意 数轴上有\(n\)个球\(m\)个洞,每次可以将所有球左移或者右移,球到洞的位置会掉下去. 求 ...
- v-for为什么最好(一定)要加key
v-for 指令基于一个数组来渲染一个列表,如下 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> ...
- Remote Sensing Images Semantic Segmentation with General Remote Sensing Vision Model via a Self-Supervised Contrastive Learning Method
论文阅读: Remote Sensing Images Semantic Segmentation with General Remote Sensing Vision Model via a Sel ...
- netty 处理客户端连接
Netty如何处理连接事件 上文讲了Netty如何绑定端口,现在我们来阅读下netty如何处理connect事件.上文我们说了NioEventLoop启动后不断去调用select的事件,当客户端连接时 ...
- Serverless 架构下的服务优雅下线实践
作者 | 行松 阿里巴巴云原生团队 应用发布.服务升级一直是一个让开发和运维同学既兴奋又担心的事情. 兴奋的是有新功能上线,自己的产品可以对用户提供更多的能力和价值:担心的是上线的过程会不会出现意外情 ...
- macbook air m1上传文件到github
一,首先安装git,打开ssh文件里的id_rsa.pub,然后复制所有内容. 二,github上申请自己的账号,右上角settings里选择SSH and GPG keys,点击new ssh ke ...
- 题解 CF833D Red-Black Cobweb
题目传送门 题目大意 给出一个 \(n\) 个点的树,每条边有边权和颜色 \(0,1\) ,定义一条链合法当且仅当 \(0,1\) 颜色的边数之比小于等于 \(2\) ,求所有合法的链的边权之积的积. ...
- Apache Shiro漏洞绕过waf小tips
看了篇文章觉得不错记录下以免以后找不到,原理是通过base64解码特性导致waf不能成功解码绕过waf检测从而进行攻击 解码情况: payload php python openresty java ...