js中的事件(上)

1、什么是事件
  是指用户在某事务上由于某种行为所执行的操作; (对页面元素的某种操作)
2、 事件的三要素
  事件源:是指在哪个元素引发的事件,如:a标签、div标签
  事件:事件是指执行的动作
    如:单击、双击等
  事件驱动程序(事件处理程序):即执行的结果
    如:单击button标签所执行的函数
3、event
  event对象,被称为事件对象。
  因此它只会在发生一个事件时可用。不同的事件产生的事件对象不同  
  存在兼容 : 
    在IE中,获取event对象:
      xxx.onclick = function(){
           alert(window.event);
      }
  在非IE浏览器,获取event对象,用传参的方式:
    xxx.onclick = function(e){
         console.log(e)
      兼容问题 : e = e || window.event
    }
4、event.button属性介绍
  button属性 : 用来确认用户操作的是左键   滚轮   右键
  左键  0
  滚轮  1
  右键  2  
5、 event.clientX、event.clientY   event.pageX、event.pageY   event.offsetX、event.offsetY

  event.clientX、event.clientY
  鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条

  event.pageX、event.pageY 
  它们使用的是文档坐标而非窗口坐标,也就是鼠标到页面的距离
  event.offsetX、event.offsetY
  鼠标到盒子本身的距离
 
6、键盘事件
  1、onkeydown :键盘按下触发事件,功能键也能识别(shift  / ctrl / alt);不能识别大小写;
  2、onkeyup : 键盘弹起触发事件;也能识别功能键  不能识别大小写
  3、onkeypress:键盘按下触发事件,不能识别功能键的keyCode;能识别大小写;
7、组合键ctrlKey、altKey
  ctrlKey 事件属性可返回一个布尔值,指示当事件发生时,Ctrl 键是否被按下
  altKey 事件属性返回一个布尔值。指示在指定的事件发生时,Alt 键是否被按下
8、keyCode/which兼容
  keyCode/which   获取键盘的按键值
  IE8 及其更早版本不支持 which 属性。不支持的浏览器可使用 keyCode 属性。但是, keyCode 属性在 Firefox 浏览器的   onkeypress 事件中是无效的。 兼容这些浏览器你可以使用以下代码
  var x = event.which || event.keyCode;   使用 which 或 keyCode, 这样可支持不同浏览器
  注意: 在onkeypress事件中, 如果按住ctrl + 回车   ,此时,回车键的keyCode的值为10 
9、事件流
  当产生某个事件时,事件从子元素向父元素触发或从父元素向子元素触发的过程 称为事件流
  事件流的两种模式 :
      事件冒泡  ---  从子元素向父元素触发  small ---> big --> body ---> document ---> window
      事件捕获  ---  从父元素向子元素触发  window -- > document --- > body --- > big --> smal
10、事件冒泡
  事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签
  阻止事件冒泡兼容:
     e.stopPropagation ? e.stopPropagation() : e.cancelBubble = true;
posted @ 2019-01-08 09:54  Ginelle  阅读(722)  评论(0编辑  收藏  举报