JS学习笔记Day11
一、什么是事件对象(黑匣子)
(一)事件:
onclick
ondblclick
(二)当绑定对象的事件被触发时,所发生的所有详细信息都会保存在一个地方,这个地方称为事件对象
二、如何获取事件对象
(一)标准浏览器:给事件触发函数传递的第一个参数;
(二)IE浏览器:全局对象的属性window.event;
(三)兼容:evt = evt || window.event
var e = evt ||window.event
三、如何获取鼠标的编码值
(一)event.button
标准浏览器:左键:0;滚轮键:1;右键:2
IE9以下:左键:1;滚轮键:4;右键:2
兼容:
function getButton(evt){
var e = evt || window.event;
if(evt){
return e.button;
}else if(window.event){
switch(e.button){
case 1:return 0;
case 2:return 1;
case 3:return 2;
}
}
}
四、如何获取鼠标的坐标值
(一)相对坐标值:event.offsetX event.offsetY;相对鼠标所在对象上的坐标值
(二)绝对坐标值(页面坐标值):event.pageX event.pageY;鼠标到页面的坐标值
(三)可视区坐标值:event.clientX event.clientY;鼠标到页面中可视区域的坐标值
(四)屏幕坐标值:event.screenX event.screenY;鼠标到电脑屏幕的坐标值
思考:如何实现鼠标跟随效果
五、什么是事件流,什么是事件冒泡
(一)事件流:指事件的流向,有三个阶段:事件捕获/事件目标/事件冒泡
(二)事件捕获:由外而内,由祖先元素向子孙元素一次传递事件的过程
(三)事件冒泡:由内而外,由子孙元素向祖先元素一次传递事件的过程
注:浏览器默认开启的是事件冒泡,IE与欧朋浏览器不支持事件捕获
(四)如何阻止事件冒泡
1.标准浏览器:event.stopPropagation()
2.IE:eventcancelBubble = true;
兼容:event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true;
六、如何获取键盘的编码值
(一)event.keyCode event.charCode event.which
onkeydown/onkeyup : 监听是整个键盘.
event.keyCode : 获取整个键盘的编码值,字母只获取大写的编码值.,
onkeypress : 监听除功能键外的键盘值
兼容 : event.keyCode || event.charCode || event.which
火狐:
event.keyCode : 0,
event.charCode : 大小写字母的编码值,
event.which : 大小写字母的编码值,
谷歌:
event.keyCode : 大小写字母的编码值,
event.charCode : 大小写字母的编码值,
event.which : 大小写字母的编码值,
七、如何设置组合键(快捷键)
(一)event.ctrlKey
(二)event.shiftKey
(三)event.altKey
JS学习笔记Day11的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
- WebGL three.js学习笔记 创建three.js代码的基本框架
WebGL学习----Three.js学习笔记(1) webgl介绍 WebGL是一种3D绘图协议,它把JavaScript和OpenGL ES 2.0结合在一起,通过增加OpenGL ES 2.0的 ...
- vue.js 学习笔记3——TypeScript
目录 vue.js 学习笔记3--TypeScript 工具 基础类型 数组 元组 枚举 字面量 接口 类类型 类类型要素 函数 函数参数 this对象和类型 重载 迭代器 Symbol.iterat ...
- 2019-4-29 js学习笔记
js学习笔记一:js数据类型 1:基本数据类型 number类型(整数,小数) String类型 boolean类型 NaN类型其实是一个nu ...
- 一点感悟:《Node.js学习笔记》star数突破1000+
写作背景 笔者前年开始撰写的<Node.js学习笔记> github star 数突破了1000,算是个里程碑吧. 从第一次提交(2016.11.03)到现在,1年半过去了.突然有些感慨, ...
随机推荐
- Java 图片爬虫,java打包jar文件
目录 1. Java 图片爬虫,制作 .jar 文件 spider.java 制作 jar 文件 添加执行权限 1. Java 图片爬虫,制作 .jar 文件 spider.java spider.j ...
- c/c++ 网络编程 UDP 设定MTU
网络编程 UDP 设定MTU MTU(Maximun Transmisson Unit):一次送信的最大size. 在程序里动态改变MTU.注意:程序运行需要root权限. 程序运行的方法: sudo ...
- 【PAT】B1015 德才论
这道题算是挺简单,我在群里看到的别人琢磨好久过不去,大多是因为没有考虑好四种等级的判断条件 一定要保证四种判断条件正确. 下面这是我的代码,比较笨.后边有别人那学来的聪明些的方法 #include&l ...
- jsonpath 使用教程(快速处理dict的深度查询)
一 简介 JSONPath - 用于JSON的XPath 用来解析多层嵌套的json数据;JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具. 二 安装 安装方法:pip in ...
- Spark1.6之后为何使用Netty通信框架替代Akka
解决方案: 一直以来,基于Akka实现的RPC通信框架是Spark引以为豪的主要特性,也是与Hadoop等分布式计算框架对比过程中一大亮点. 但是时代和技术都在演化,从Spark1.3.1版本开始,为 ...
- 使用time+dd测试硬盘读写速度
命令:time dd if=/dev/zero bs=1M count=2048 of=direct_2G 此命令为在当前目录下新建一个2G的文件 Demo如下: 写速度: time dd if= ...
- day 9~11 函数
今日内容 '''函数四个组成部分函数名:保存的是函数的地址,是调用函数的依据函数体:就是执行特定功能的代码块函数返回值:代码块执行的结果反馈函数参数:完成功能需要的条件信息1.函数的概念2.函数的定 ...
- IDEA+循环语句 or 输出语句 快捷操作
IDEA+循环语句 or 输出语句 快捷操作:https://blog.csdn.net/shijiebei2009/article/details/44726433 for循环:仅输入fori然后回 ...
- 关于Eclipse的版本、分支、衍生版本
Eclipse 简介: Eclipse的历史: Eclipse的发布版本: Eclipse分支: 关于不同分支版本的区别,点击链接: http://www.eclipse.org/downloads/ ...
- volatile分析
volatile三大特性: 1. 内存可见性 2.不保证原子性 3. 禁止重排序内存屏障的概念:memory barrier是一个CPU指令.指令逻辑:a.确保一些特定操作执行顺序 b.影响一些数据的 ...