在下面的小提琴中,我分别对可见性和不透明度进行了过渡.后者行得通,而前者不行.此外,在能见度的情况下,过渡时间被解释为悬停时的延迟.在Chrome和amp;Firefox中都会发生这种情况.这是个窃听器吗?

http://jsfiddle.net/0r218mdo/3/

case 1:

#inner{
    visibility:hidden;
    transition:visibility 1000ms;
}
#outer:hover #inner{
    visibility:visible;
}

case 2:

#inner1{
    opacity:0;
    transition:opacity 1000ms;
}
#outer1:hover #inner1{
    opacity:1;
}

推荐答案

This is not a bug-您只能在序数/可计算(computed)属性上进行转换(考虑这一点的一个简单方法是任何具有数字开始和结束数值的属性……尽管有一些例外).

这是因为变换通过计算两个values之间的关键帧来工作,并通过外推中间数量来生成动画.

本例中的visibility是一个二进制设置(可见/隐藏),因此一旦过渡持续时间过go ,该属性只会切换状态,您会将其视为延迟-但它实际上可以被视为过渡动画的最终关键帧,中间关键帧尚未计算(隐藏/可见之间的值由什么组成?不透明?维度?因为它不明确,所以它们没有被计算).

opacity是一个值设置(0-1),因此可以在提供的持续时间内计算关键帧.

可以找到可转换(可动画)属性的列表here

Css相关问答推荐

沿浮动形状—面元素外路径将文字垂直居中""

相对于现有的转换3D应用关键帧动画

如何在移动屏幕尺寸上包装元素?

两列网格中左列第一个文本正下方的按钮

Prettier/VS Code 在 CSS 中的 !important 之前添加一个空格,导致它在 WordPress 中崩溃

根据子索引计算变换 CSS 参数

React MUI 从 CSS 伪元素中删除内容

Nextjs Tailwind Marquee 组件溢出

如何阻止 Mud Blazor MudTable 列扩展以适合文本

如何使 css 不重复同一个类?

在 React Native 中创建背景

如何在流线型多页面应用程序中在表情符号和页面名称之间留出一些空白

直观地指示 IFrame 内的表单正在提交,但没有 javascript

为什么无论我做什么都不能改变复选框的 colored颜色 ?

HTML/CSS 中的单选/复选框对齐

使用 Bootstrap 设置身体的最大宽度

使用 CSS 强制侧边栏高度 100%(带有粘性底部图像)?

带有 flexbox 的 css 正方形网格

CSS - 使 div 水平对齐

为什么我的 div 边距重叠,我该如何解决?