demo

// DOM结构
class App extends React.Component {
componentDidMount() {
const div1 = document.getElementById('div1');
const div2 = document.getElementById('div2');
const div3 = document.getElementById('div3'); // 捕获阶段处理
div1.addEventListener('click', () => {console.log('div1 capturing');}, true);
div2.addEventListener('click', () => {console.log('div2 capturing');}, true);
div3.addEventListener('click', () => {console.log('div3 capturing');}, true); // 冒泡阶段处理
div1.addEventListener('click', () => {console.log('div1 bubbling');}, false);
div2.addEventListener('click', () => {console.log('div2 bubbling');}, false);
div3.addEventListener('click', () => {console.log('div3 bubbling');}, false);
} render() {
return (
<div id="div1" className="div1" >
<div id="div2" className="div2" >
<div id="div3" className="div3">
</div>
</div>
</div>
);
}
} ReactDOM.render(<App />, mountNode);
// css 代码

.div1 {
display: flex;
width: 500px;
height: 500px;
border: 1px solid red;
background: red;
} .div2 {
display: flex;
width: 400px;
height: 400px;
background: green;
} .div3 {
width: 200px;
height: 200px;
background: blue;
// z-index: -1;
}

1.  div3 没有 z-index: -1 点击蓝色块(div3)

2. div3 没有 z-index: -1 点击蓝色块(div3)

结论:

1. z-index没有影响DOM结构

2. z-index形成了层叠上下文,导致触发事件的元素不一样,上文的demo来说: div3加上z-index: -1后, div2位于他的上方,此时,即使点击div3所在的位置,仍然触发的是div2,所以,根据事件先捕获后冒泡的的机制: div1 -> div2 -> div2 -> div1,因为事件机制并不会往触发事件的元素的后代继续传播

3. z-index 会影响触发事件的元素,并不会影响事件机制的本身。

相关姿势:

z-index:

  1. 背景和边框 —— 形成层叠上下文的元素的背景和边框。 层叠上下文中的最低等级。
  2. 负z-index值 —— 层叠上下文内有着负z-index值的子元素。
  3. 块级盒 —— 文档流中非行内非定位子元素。
  4. 浮动盒 —— 非定位浮动元素。
  5. 行内盒 —— 文档流中行内级别非定位子元素。
  6. z-index: 0 —— 定位元素。 这些元素形成了新的层叠上下文。
  7. 正z-index值 —— 定位元素。 层叠上下文中的最高等级。

flex与z-index的关系

《深入理解CSS中的层叠上下文和层叠顺序》

《z-index和auto margins在flex布局中是如何工作的》

javaScript tips —— z-index 对事件机制的影响的更多相关文章

  1. 【探讨】javascript事件机制底层实现原理

    前言 又到了扯淡时间了,我最近在思考javascript事件机制底层的实现,但是暂时没有勇气去看chrome源码,所以今天我来猜测一把 我们今天来猜一猜,探讨探讨,javascript底层事件机制是如 ...

  2. JavaScript事件机制——细思极恐

    JavaScript事件机制,也有让人深思的东西.在一开始未深入了解,我头脑里有几个问题发出: 1. 自下而上(冒泡)事件怎么写,自上而下(捕获)又是怎么写? 2. 捕获型和冒泡型同时设置,谁生效? ...

  3. 【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)

    前言 这篇博客有点长,如果你是高手请您读一读,能对其中的一些误点提出来,以免我误人子弟,并且帮助我提高 如果你是javascript菜鸟,建议您好好读一读,真的理解下来会有不一样的收获 在下才疏学浅, ...

  4. [解惑]JavaScript事件机制

    群里童鞋问到关于事件传播的一个问题:“事件捕获的时候,阻止冒泡,事件到达目标之后,还会冒泡吗?”. 初学 JS 的童鞋经常会有诸多疑问,我在很多 QQ 群也混了好几年了,耳濡目染也也收获了不少,以后会 ...

  5. JavaScript 详说事件机制之冒泡、捕获、传播、委托

    DOM事件流(event  flow )存在三个阶段:事件捕获阶段.处于目标阶段.事件冒泡阶段. 事件捕获(event  capturing):通俗的理解就是,当鼠标点击或者触发dom事件时,浏览器会 ...

  6. javascript 中的事件机制

    1.javascript中的事件. 事件流 javascript中的事件是以一种流的形式存在的. 一个事件会也有多个元素同时响应. 有时候这不是我们想要的效果, 我们只是需要某个特定的元素相应我们的绑 ...

  7. Javascript事件机制兼容性解决方案

    本文的解决方案可以用于Javascript native对象和宿主对象(dom元素),通过以下的方式来绑定和触发事件: 或者 var input = document.getElementsByTag ...

  8. 【初窥javascript奥秘之事件机制】论“点透”与“鬼点击”

    前言 最近好好的研究了一番移动设备的点击响应速度,期间不断的被自己坑,最后搞得焦头烂额,就是现在可能还有一些问题,但是过程中感觉自己成长不少, 最后居然感觉对javascript事件机制有了更好的认识 ...

  9. 重温javascript事件机制

    以前用过一段时间的jquery感觉太方便,太强大了,各种动画效果,dom事件.创建节点.遍历.控件及UI库,应有尽有:开发文档也很多,网上讨论的问题更是甚多,种种迹象表明jquery是一个出色的jav ...

随机推荐

  1. 开启mysql的远程访问

    1.登陆mysql数据库 mysql -u root -p 查看user表 mysql> use mysql;Database changedmysql> select host,user ...

  2. Selenium-Grid2 配置RemoteWebDriver

    为什么要使用Selenium Grid ? 分布式运行大规模的Test 能够通过一个中央点,很容易的运行不同OS上的不同browser 最小化对Grid的维护时间,并能充分利用虚拟设备 Seleniu ...

  3. java反射之获取类的基本信息(一)

    一.反射原理. Java 反射机制.通俗来讲呢,就是在运行状态中,我们可以根据“类的部分已经的信息”来还原“类的全部的信息”.这里“类的部分已经的信息”,可以是“类名”或“类的对象”等信息.“类的全部 ...

  4. TypeError: Object of type 'int32' is not JSON serializable ——已解决

    将模型用flask封装,返回json时报错:TypeError: Object of type 'int32' is not JSON serializable 网上搜索出的解决方案:重写json.J ...

  5. oracle中length、lengthb、substr、substrb用法小结

    我记得我曾经在开发form的时候犯过这样一个错误,对于form中的某个字段,对应于数据库中某张表的字段,假设在数据库中这个字段一般也就用到20个汉字的长度,后来我在开发form的时候,设置item类型 ...

  6. weblogic控制台部署web项目图解

    图解网址:http://jingyan.baidu.com/article/c74d6000650d470f6b595d72.html

  7. hive union all使用注意

    UNION用于联合多个select语句的结果集,合并为一个独立的结果集,结果集去重. UNION ALL也是用于联合多个select语句的结果集.但是不能消除重复行.现在hive只支持UNION AL ...

  8. CSS 分组和嵌套选择器

    CSS 分组和嵌套选择器 一.分组选择器 在样式表中有很多具有相同样式的元素. h1 { color:green; } h2 { color:green; } p { color:green; } 为 ...

  9. snapshot与release

    总结自:https://www.jianshu.com/p/084fd2408d9a 这两个概念是用于描述jar包,jar包提供给其他系统作为依赖. 1. snapshot版本代表不稳定.尚处于开发中 ...

  10. 20145313张雪纯 《Java程序设计》第2周学习总结

    20145313张雪纯 <Java程序设计>第2周学习总结 教材学习内容总结 3.1.1类型 整数:分为short整数(2字节).int整数(4字节).long整数(8字节). 字节:by ...