js补充知识

一、JS的事件对象 - event

1)概念

  • event就是当前事件的对象,简称事件对象
  • 只要触发DOM上的某个事件时,会产生一个事件对象event,这个对象中包含着所有与事件有关的信息。


    event 常见属性.png

2)pageX / pageY、screenX / screenY、clientX / clientY的区别

  • 1)screenX和screenY 是以屏幕为基准进行测量,即:当前元素距离屏幕的尺寸
  • 2)pageX 和 pageY 是以当前文档(绝对定位)为基准,不适用于IE6-8;
  • 3)clientX 和 clientY 是以当前可视区域为基准,类似于固定定位。

3)防止拖动时选中内容

window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();

二、严格模式和怪异模式

1)概念

  • 早期的浏览器Netscape 4和Explorer 4对css进行解析时,并未遵守W3C标准,这时的解析方式就被我们称之为quirks mode(怪异模式)
  • 但随着W3C的标准越来越重要,众多的浏览器开始依照W3C标准解析CSS,仿照W3C标准解析CSS的模式我们叫做strict mode(严格模式)

2)使用

  • document.compatMode
  • 值为BackCompat,则是怪异模式
  • 值为CSS1Compat,则为严格模式

三、onresize

1)概念

  • 当窗口或框架的大小发生改变的时候就会调用
  • onresize一般被运用于自适应页面布局等多屏幕适配场景

四、JS事件传递机制

1)冒泡机制

  • 气泡从水底开始往上升,由深到浅,升到最上面。在上升的过程中,气泡会经过不同深度层次的水。
  • 相对应地:这个气泡就相当于我们这里的事件,而水则相当于我们的整个dom树;事件从dom 树的底层,层层往上传递,直至传递到dom的根节点


    图示.png
  • 冒泡顺序:div -> body -> html -> document -> window
  • 不是所有的事件都能冒泡,以下事件不冒泡:blur、focus、load、unload

2)阻止冒泡的方法

1)标准浏览器 和 ie浏览器

  • w3c:event.stopPropagation() proPagation 传播 传递
  • IE:event.cancelBubble = true bubble 冒泡 cancel 取消

2)兼容的写法

if(event && event.stopPropagation){ // w3c标准    
    event.stopPropagation();
}else{ // IE系列 IE 678    
    event.cancelBubble = true;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 3,526评论 1 11
  • offset家族三大家族和一个事件对象三大家族(offset/scroll/client)事件对象/event ...
    Yuann阅读 982评论 0 5
  • DOM2 级事件包括: 事件捕获,处于目标,事件冒泡 绑定事件方法: HTML上直接绑定 DOM0级事件处理程序 ...
    kopsht阅读 407评论 0 0
  • 第3章 基本概念 3.1 语法 3.2 关键字和保留字 3.3 变量 3.4 数据类型 5种简单数据类型:Unde...
    RickCole阅读 5,149评论 0 21
  • JavaScript 与 HTML 之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互瞬...
    LemonnYan阅读 697评论 0 4