javascript - css 动画不适用于新的 dom 元素

标签 javascript dom css-animations

我的 CSS 动画不起作用? http://jsbin.com/torococepu/1/edit?js,output

var elem = document.querySelector('.add-elem'),
body = document.querySelector('body');
var addNewElem = function(e) {
var div = document.createElement('div');
div.className = 'new-elem';
body.appendChild( div );
};
elem.addEventListener('click', addNewElem, false);
body.addEventListener( 'DOMNodeInserted',
function(e) { e.target.classList.add('set-height'); }, false);

最佳答案

更新

您可以触发自定义动画。 forwardsanimation-fill-mode,它定义了动画完成后的外观。

animation: heightAnimate 1s forwards;

这是动画。

@keyframes heightAnimate {
    from {height: 0px;}
    to {height: 50px;}
}

在这里测试:http://jsbin.com/tobulavobi/1/edit

您可以在添加设置新高度的类时添加一个 setTimeout。

http://jsbin.com/rawepoguma/1/edit

body.addEventListener( 'DOMNodeInserted', function(e) {
    setTimeout( function () {
        e.target.classList.add('set-height');
    }, 0 );
}, false);

关于javascript - css 动画不适用于新的 dom 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28834353/

相关文章:

javascript - ELSE/IF 语句无法正常工作

javascript - 通过javascript将事件监听器附加到单选按钮

css - 如何使用 CSS 动画移动文本?

css - 如何从某个网页播放CSS动画

javascript - 列表和模型同步

仅在 IE 中,JavaScript 函数未在外部 .js 文件中定义

javascript - 在 componentDidMount 中卸载什么

javascript - 在覆盖 DIV 下隐藏 Flash 的缺点

jquery - 获取带有列的div的宽度

周围 div 上方的 CSS 转换