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 ...
随机推荐
- linux系统运维操作规范
1.1安装流程 1.1.1 系统如无特殊要求一律采用小化安装方式进行安装. 1.1.2 安装过程开始之前需要根据实际情况进行CPU数量.磁盘容量.内存分配.文件系统.目录结构.磁盘分区规划.磁盘管理方 ...
- 简单易行的美化方案:Ubuntu 18.04 把启动过程中的紫色美化为黑色
背景 给笔记本装了一个Ubuntu,嫌弃启动的颜色很丑:因此在网上找到了一些修改方法,集成为一个傻瓜脚本. 参考文档: https://askubuntu.com/questions/5065/how ...
- P4351-[CERC2015]Frightful Formula【组合数学,MTT】
正题 题目链接:https://www.luogu.com.cn/problem/P4351 题目大意 \(n*n\)的矩形,给出第一行和第一列的数,剩下的满足\(F_{i,j}=a*F_{i,j-1 ...
- 模拟一个简单的tomcat
目录 简单处理 每个请求一个线程 模拟tomcat 参考 简单处理 // 客户端和服务器的通信,说到底就是两个数据的传输, // 客户端发送inputStream给服务器,服务器回复 // outpu ...
- Go语言之结构体与方法
一.结构体 结构体是一系列属性的集合(类似于 Python 中的类) 1.结构体的定义与使用 // 定义 type Person struct { Name string Age int Sex st ...
- mysql8.0.20下载安装教程
mysql8.0.20安装教程 1.浏览器搜索mysql下载安装 地址:https://dev.mysql.com/downloads/mysql/ 2.登录或者不登录下载 3.下载的是一个压缩包,直 ...
- 【数据结构与算法】二叉树的 Morris 遍历(前序、中序、后序)
前置说明 不了解二叉树非递归遍历的可以看我之前的文章[数据结构与算法]二叉树模板及例题 Morris 遍历 概述 Morris 遍历是一种遍历二叉树的方式,并且时间复杂度O(N),额外空间复杂度O(1 ...
- Java学习路线【转】
Java学习路线[转] 第一阶段:JavaSE(Java基础部分) Java开发前奏 计算机基本原理,Java语言发展简史以及开发环境的搭建,体验Java程序的开发,环境变量的设置,程序的执行过程,相 ...
- Dapr + .NET Core实战(十三)跨语言开发
因为基于Dapr的服务架构是不限语言的,我们来看看Dapr的跨语言开发.我们使用golang,python,.NET来实现跨语言的服务调用,拓扑如下 我们继续使用.NET 5的fontend和back ...
- 从零入门 Serverless | 一文讲透 Serverless Kubernetes 容器服务
作者 | 张维(贤维) 阿里云函数计算开发工程师 导读:Serverless Kubernetes 是以容器和 kubernetes 为基础的 Serverless 服务,它提供了一种简单易用.极致弹 ...