【发布时间】:2016-01-21 21:47:34
【问题描述】:
- 我有一个带有右侧菜单(绿色)的 CSS 布局。
- 菜单的主要部分默认隐藏在视口之外。
- 鼠标悬停在右侧菜单上:经过短暂延迟后,菜单完全转换到视口中(经过一点延迟)。
- 鼠标移出右侧菜单时:菜单应转换回其初始位置(无延迟)。
查看此JsFiddle 上的绿色菜单:尝试将鼠标悬停在绿色菜单上
以下是相关的 CSS 代码:
section#base-layer section#base-layer-contact-bar {
position: absolute;
box-sizing: border-box;
top: 60px;
right: -90px;
width: 150px;
height: calc(100% - 60px);
transform: translate3d(0, 0, 0);
transition: transform 0.6s ease-in;
background-color: green;
}
section#base-layer section#base-layer-contact-bar:hover {
transform: translate3d(-90px, 0, 0);
transition-delay: 1s;
}
重现:当动画处于初始状态时,将鼠标移出绿色部分,即在其完全延伸之前。
- 有没有办法让流畅的动画始终出现?
- 我的 CSS 有问题吗?
- 这可能吗?
- 如果是这样,是否有纯 CSS 解决方案,或者我必须采取不同的方式吗?
注意我在 ubuntu 上使用的是 Chrome v45。
【问题讨论】:
-
我在你的 jsfiddle 上看不到所说的动画,也许你错过了在那里描述的东西?
-
@AGE 就像描述的那样,动画在绿色菜单上,它会在一点延迟后启动(故意)
-
我看不到任何闪烁,您的意思是当菜单打开并且在动画完成之前您将鼠标移出绿色部分菜单会跳回原位?如果不是我不知道你的意思
-
我没有看到任何闪烁,也没有看到跳回。当我将鼠标移出时,它只是动画关闭。必须是特定于浏览器的(我在 osx Chrome 上)。仅供参考,这种延迟很烦人——用户会想什么“哦,让我们打开菜单吧——我希望它能让我先等一会儿!” ;)
-
@Moob 我不是在寻求 UX 建议,显然我为了调试目的让所有事情都变慢了。你知道在生产版本中颜色会改变;)
标签: css hover css-animations translate3d