javascript - 如何正确等待 JavaScript 应用内联 Css

标签 javascript css

我有这个jsFiddle .单击按钮时,我想立即将红色 div 放在黑色 div 后面,然后开始动画。

var red = document.getElementById("red");
var button = document.getElementById("button");

button.addEventListener("click",function () {
    red.style.zIndex = -1;
    red.classList.remove("shifted");
});

但是,如您所见,它们似乎是作为两个独立的 Action 发生的。我知道我可以使用 setTimeout 等待 zIndex 属性被应用,但我不知道我应该等待多长时间,持续时间可能因浏览器和计算机而异。

我应该创建一个循环来检查是否应用了 zindex 吗?但这听起来也像是一个不明智的解决方案。正确的做法是什么?

编辑:我不想更改黑色 div 上的 zIndex。

最佳答案

你可以绑定(bind)到元素的转换状态,像这样:

("#mySelector").bind("transitionend", function(){ 'yourcodehere' });

另外,这里有一些关于它的信息:

没有 jQuery:

el.addEventListener("transitionend", updateTransition, true);

编辑:

对于以下的用法存在一些混淆:

-webkit-transition-duration: 1s;

这也像样式一样应用。因此,无论何时您对其所在的元素进行更改,都会触发它。您有两个转换调用,一个用于设置 z-index,另一个用于移动。

关于javascript - 如何正确等待 JavaScript 应用内联 Css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21539276/

相关文章:

javascript - Bootstrap 单选按钮 : Get selected value on submit form

javascript - 页面上有多个引导弹出窗口,但只有单击的第一个弹出窗口可以按需要工作

javascript - 判断用户是否授予网站永久权限以在浏览器中获取位置

javascript - 根据 <td> 中的值着色 <tr>

html - 如何使用 css 隐藏 html 页面上除一个 div 之外的所有元素?

html - 使 Bootstrap 轮播图像和文本在移动设备中可读

javascript - 使用 Angular 指令仅更新 'view' 值

javascript - 使用 onbeforeunload 而不使用对话框?

css - @Html.RenderAction 和 CSS

css - 在自上而下之前从左到右流动多列元素