首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS转换不会影响替换的节点

CSS转换不会影响替换的节点
EN

Stack Overflow用户
提问于 2018-03-17 09:43:50
回答 1查看 30关注 0票数 0

为什么showLoadingAndResetAnimation不能正确淡入,而showLoading可以?元素不是淡入,而是立即变得不透明。https://jsfiddle.net/q56a3mjj/18/

代码语言:javascript
复制
function showLoading() {
    var elem = document.getElementsByClassName("main")[0];
    elem.style.opacity = 1;
}

/* As per css-tricks.com, I restart the animation by        *
* replacing the animated node with a deep-copy of itself    *
* https://css-tricks.com/restart-css-animation/             */
function showLoadingAndResetAnimation() {
    var elem = document.getElementsByClassName("main")[0];
    var newElem = elem.cloneNode(true);
    elem.parentNode.replaceChild(newElem, elem);
    newElem.style.opacity = 1;
}

编辑:我认为发生这种情况是因为浏览器从来没有看到newElem有一个opacity: 0,所以它不认为它是从0开始转换的。添加20毫秒的超时是可行的。

EN

回答 1

Stack Overflow用户

发布于 2018-03-17 10:05:00

因为您正在创建一个元素(替换原来的元素),并且在活动之后将为元素触发CSS3转换延迟事件。

您可以通过移除javascript并使用以下命令来制作所需的动画:

代码语言:javascript
复制
@keyframes moveRight {
    0%   {left: 0; opacity : 0}
    50%   {opacity : 1}
    99% {left: 650px; opacity : 0}
    100% {left:0; opacity: 0;}
}

https://jsfiddle.net/q56a3mjj/33/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49331705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档