如果我向事件侦听器注册了一个耗时的回调函数,则此事件会在短时间内触发两次.第二个回调是否会被第一个回调?
我在浏览器中试过这个:
document.body.onclick = function() {
var date = new Date;
console.log('click event at ' + date);
while(new Date - date < 1e4) {};
console.log('callback end');
}
Run Code Online (Sandbox Code Playgroud)
结果,第二个回调在第一个回调完成后立即执行.
所以现在我对JavaScript非阻塞异步模块感到困惑:哪个部分是异步执行的?
我创建了两个兄弟 div 并在最后一个上应用了负边距,但是当我添加position: relative到第一个 div 时,它与下一个兄弟重叠:
.box {
width: 100px;
height: 100px;
}
.box-1 {
position: relative;
background: orange;
}
.box-2 {
margin-top: -50px;
background: yellowgreen;
}Run Code Online (Sandbox Code Playgroud)
<div class="box box-1">box-1</div>
<div class="box box-2">box-2</div>Run Code Online (Sandbox Code Playgroud)
然而,MDN表示
使用“auto”以外的 z-index 值定位(绝对或相对)将创建一个新的堆叠上下文。
所以我想这不是堆叠上下文导致重叠,你知道这是如何发生的吗?