【问题标题】:Transition with hidden elements带有隐藏元素的过渡
【发布时间】:2013-06-22 11:58:56
【问题描述】:

我有一个文本,它在悬停时会在其他地方显示另一个(否则隐藏)文本,如下所示:

HTML

<div class="design">hover me<span>to show this</span></div>

CSS

.design {
    position: absolute;
    z-index: 2;
    color: #404040;
}

.design:hover {
    cursor: pointer;
}

.design span {
    position: absolute;
    display: none;
}

.design:hover span {
    display: block;
    top: 47px;
    left: 45px;
    font-family: Arial;
    font-size: 13px;
    color: #000;
}

如何将过渡效果应用于根据悬停而隐藏或显示的文本?显然transitiondisplay:none:block 冲突,但使用visibility 似乎也不起作用。

编辑:jsFiddle - http://jsfiddle.net/vwsgJ/

【问题讨论】:

  • 这个问题和stackoverflow.com/questions/17200141/….. 很相似。希望对你有帮助...
  • 您可以为您的问题jsfiddle.net 创建一个jsfiddle。这将帮助其他人给你一个更好的答案:)
  • 添加了 jsFiddle,谢谢。但是我无法从您链接的其他主题中找到帮助。
  • 希望这也能有所帮助。我使用 rgba 创建了这个 -->jsfiddle.net/vwsgJ/1
  • 使用opacity = 01transition 仅适用于数值!

标签: css css-transitions


【解决方案1】:

第一种方法

我已经设法使用opacity 实现了您想要的,根据(我认为)MDN(Mozilla 开发人员网络)您无法转换显示。我还稍微重新排列了你的 CSS:

http://codepen.io/hwg/pen/xFDIl - 工作代码。

CSS:

.design span {
position: absolute;
opacity:0;
transition: opacity 1s;

display: block;
top: 47px;
left: 45px;
font-family: Arial;
font-size: 13px;
color: #000;

width:0;
height:0;
margin-left:-1000px;

}

.design:hover span {

opacity:1;
/*transition: all 1s;*/

width:30px;
height:auto;
margin-left:0;
}

请注意,codepen.io 使用无前缀,请参阅http://caniuse.com/css-transitions 了解浏览器支持,可能必须添加前缀。

编辑- 为避免以下 OP 的问题,在未悬停的元素中添加:width:0; height:0;,并在悬停时添加像素宽度/高度,例如 width:30px; height:auto;。 (参见示例)如果您将鼠标悬停在精确该区域上,您会看到悬停效果,但实际上在我看来这非常罕见,这也可以通过使用margin left 来解决如果需要。

注意:这会在鼠标移出时停止过渡。

新方法

为避免上述问题,可以将属性pointer-events:none 添加到span。这样就无需使用任何否定的margins,或自定义widthsheights

http://codepen.io/hwg/pen/BojpK

但是,IE-anything 不支持此功能,请参阅css 'pointer-events' property alternative for IE 以获得更多帮助。

否则我认为 OP 的目标无法完全实现。

【讨论】:

  • 谢谢,几乎解决了这个问题,但是正如你所见,悬停隐藏的“显示这个”文本(如果/当你知道它的位置)也会导致它显示。这也是我首先选择display 的原因。有什么办法吗?
  • @lapingultah 已修复使用width- 查看答案
  • @lapingultah 另外,height.
  • 似乎不起作用,可使用 CodePen 和 jsFiddle 重复。不应该是浏览器问题 (FF 21.0)。
  • 实际上那样做更奇怪,jsfiddle.net/STYJg。足以悬停在文本区域内的任何位置。
猜你喜欢
  • 1970-01-01
  • 2015-05-23
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
  • 2013-07-01
  • 2015-05-23
  • 2015-09-16
  • 1970-01-01
相关资源
最近更新 更多