【问题标题】:CSS dropdown menu fading transition and displayCSS 下拉菜单淡入淡出过渡和显示
【发布时间】:2012-06-15 18:10:52
【问题描述】:

我一直在做我的功课,看来你不能在使用 display:none;display:inline; 等的地方使用 CSS 过渡效果。

我想在我的 CSS 下拉菜单中添加悬停时的淡入和淡出,使其看起来更干净。使用我发现的显示元素时这是不可能的。

我尝试从我的 CSS 中删除 display,但是当我这样做时,元素就在那里(尽管不可见)并且当你将鼠标悬停在它上面时会淡入。我阅读了添加“指针事件:无”的建议;对此,这不是跨浏览器兼容的。如果您再次将鼠标移到它上面,它还会导致淡入淡出元素闪烁。

我还在使用显示元素时使用了 CSS 关键帧动画建议来淡入,但是当鼠标离开时无法让它淡出。 :(

我知道这是可能的,因为我在很多网站上都看到过它,但我无法让它适合我的工作。

这是我的代码:

http://pastebin.com/zVQapUNz

【问题讨论】:

  • 大多数网站使用 jquery 或类似的 javascript 来实现效果。有些效果只对块起作用,你试过 inline-block 吗?
  • 我确实尝试过,是的......同样的效果。唯一导致转换起作用的是从其中完全删除显示元素。但在这种情况下,菜单项根本不可见,而且隐藏得不好。

标签: html css menu fading


【解决方案1】:

我已经在 jsfiddle.net 中编写了你的​​代码

http://jsfiddle.net/3PD7D/1/

当鼠标移到它上面时这确实有效,你可以使用相同的概念来改变不透明度

from {opacity:1;}
to {opacity:0;}

隐藏菜单。但是,这将使其透明,后面的任何东西都是可见的,但不可点击。如果将 display:none 添加到结束动画帧,我还没有尝试过会发生什么。

【讨论】:

  • jsfiddle!我正在寻找发布我的代码但不记得名字的东西。这就是我目前在网站上采用的解决方案,但它不适用于 IE9,反转这些值也不会导致淡出:(
  • 您可以在此处看到:jsfiddle.net/kQ3J2 反转它不会淡出...除非我做错了? (我是动画新手)
  • jsfiddle.net/kQ3J2/3 如果您从 {opacity:1;} 添加到 {opacity:0;可见性:隐藏; display: none;} 隐藏时将下一组样式添加到目标中。然而问题在于,一旦用户将鼠标悬停在菜单本身上,就会开始淡出。如果不使用 jquery,我想不出办法来防止这种情况发生。
  • jQuery 不是我的强项。我一直在尝试使用其他人的代码来破解这种方法并对其进行修改以满足我的需要,但它对我来说从来没有用过:(
猜你喜欢
  • 2020-08-24
  • 2017-06-08
  • 2021-10-01
  • 2011-08-05
  • 2020-03-29
  • 2012-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多