当前位置: 首页 > 知识库问答 >
问题:

CSS动画不透明度,然后将可见性设置为隐藏?

隆睿
2023-03-14

我有一个区域有很多对象,包括按钮等,可以点击。

动画不透明度工作很好,但我发现不可见的按钮仍然在画布的堆栈中,因此仍然可以点击。我想运行一个不透明动画,然后将项目设置为可见性隐藏,一旦它完成...这是可能的吗?

我的尝试产生了一个淡出的动画,但在淡出动画可以运行之前突然从页面上掉下来。

我基本上是在尽量避免画布上其他元素的干扰,但仍然保持在那里。

.item { opacity: 0; visibility: hidden; }
/* when a class gets added, it animates */
.animate .item {

    animation: fadeIn 2s 1s 1 normal forwards ease-out,
        fadeOut 2s 3s 1 normal forwards ease-out;

}

@keyframes fadeOut {

    1% { opacity: 1; }
    99% { opacity: 0; }
    100% { opacity: 0; visibility: hidden; }

}

@keyframes fadeIn {

    1% { opacity: 0; visibility: visible; }
    2% { opacity: 0; }
    100% { opacity: 1; }

}

我得到了错误的行为,在项目消失之前,完全淡出,或者可能是淡出开始。

有什么解决办法吗?

谢谢,迈克尔。

共有1个答案

秦永望
2023-03-14

我认为您的问题只是在某些关键帧中省略了可见性属性。

在所有关键帧中声明正在动画化的所有属性总是一个好主意

@keyframes fadeIn {
    1% { opacity: 0; visibility: hidden; }
    2% { opacity: 0; visibility: visible;}
    100% { opacity: 1; visibility: visible;}
}
@keyframes fadeOut {
    1% { opacity: 1; visibility: visible;}
    99% { opacity: 0; visibility: visible;}
    100% { opacity: 0; visibility: hidden; }
}

小提琴

 类似资料:
  • 问题内容: 有没有简单的CSS方法可以使像这样的元素的边界半透明? 如果没有,是否有人知道我不使用图像怎么办? 问题答案: 不幸的是,该元素使整个元素(包括任何文本)都是半透明的。使边框半透明的最佳方法是使用rgba颜色格式。例如,这将给出不透明度为50%的红色边框: 这种方法的问题在于,如果这是整个声明,则某些浏览器将无法理解该格式,并且根本不会显示任何边框。解决方案是提供两个边界声明。第一个具

  • 问题内容: CSS3动画出现问题。 仅当我删除的更改时,此代码才有效。 我想在悬停后立即更改显示,但不透明度应使用过渡进行更改。 问题答案: 我改变了一点,但结果很漂亮。 谢谢大家

  • 我在滚动窗格中有一个带有按钮的网格窗格。当所需的按钮数量不足以填充ScrollPane的最大大小时,它看起来像下面的图像。我需要将这个空白点设置为包含它的窗格的背景色。 我尝试将网格的背景颜色设置为包含它的背景窗格的相同颜色,但它只是用按钮为线条着色。如果我尝试将ScrollPane的不透明度设置为0,它也设置了按钮的不透明度,所以我看不到任何东西,即使我设置了按钮的不透明度之后。 我怎么能这么做

  • 前面在学习《 CSS颜色》时我们已经了解,通过 rgba()、hsla() 可以设置颜色的透明度,但是它们只能在定义颜色的同时设置透明度,无法对图像或者其它元素设置透明度。 CSS 中提供了一个 opacity 属性用来设置元素的透明度,它不仅对颜色有效,对图像或者页面中其它的元素也有效。其语法格式如下: opacity: number; 其中 number 为一个 0~1 之间的浮点数(小数),

  • 我有一个视图想要折叠,所以我将可见性设置为view,该视图变得不可见,但它仍然占用空间。 我不知道可能是什么,有人有想法? 下面是布局: 提前致谢

  • 本文向大家介绍使用CSS设置背景色的不透明度,包括了使用CSS设置背景色的不透明度的使用技巧和注意事项,需要的朋友参考一下 要设置背景色的不透明度,请使用不透明度属性和RGBA颜色值。 示例 您可以尝试运行以下代码来实现opacity属性: