元素在css动画完成之前消失

时间:2016-04-14 23:32:52

标签: jquery css animation

我正在为一个延迟启动的网站构建动画工具提示。大约2秒后,它从顶部动画到屏幕(不透明度和位置)。它显示大约5-8秒然后我有一个jQuery函数" setTimeout"从DOM中删除元素。

代码如下:

CSS

.tooltip { 
    position: absolute;
    background:gold;
    padding-bottom: 15px;
    right:20px;
    top: 40px;
    padding: 10px;
    border-radius: 5px;
    width: 220px;
    z-index: 200;
    opacity: 0;
    display: inline-block;
    animation: zippyTool 2s;
    animation-timing-function: cubic-bezier(0.68, -0.55, 0.265, 1.55);
    animation-delay: 2s;
}

@keyframes zippyTool {
    0% { opacity: 0; top: -20px}
    100% { opacity: 1; top: 40px; }
}

JS

 setTimeout(function() {
    $( ".tooltip" ).fadeOut( "slow" );
  }, 10000);

问题是工具提示元素似乎在动画完成时消失。好像它会恢复到css中列出的.tooltip的原始不透明度定义。

我在这里做了一个小提琴行为https://jsfiddle.net/coolwebs/0kv3pe8z/1/

如何在@keyframes css动画完成时停止工具提示元素消失?

1 个答案:

答案 0 :(得分:1)

我显然没有足够的搜索:

这里注明答案为Maintaining the final state at end of a CSS3 animation

我需要添加'前进'像我这样的动画声明:

animation: zippyTool 2s forwards;