微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

CSS Hover - 在悬停时淡入,在悬停时立即消失

如何解决CSS Hover - 在悬停时淡入,在悬停时立即消失

所以,我有一个悬停过渡,我想在悬停时缓和,但在悬停时立即停止。

这是一个示例片段:

.invisible{
  opacity: 0;
  transition: 1s;
}

div{
  cursor: pointer;
}

div:hover .invisible{
  opacity: 100%;
}
<div>
  <p>Hover Here</p>
  <p class="invisible">Now you see me</p>
</div>

我可以在 CSS 中更改什么以保持文本在 1 秒内淡入淡出,但在鼠标移开时立即消失?

解决方法

您只能将过渡过渡到悬停状态,默认情况下它会过渡到所有状态。

一旦您将其用于 :hover,过渡将仅在鼠标悬停时发生,而不会在鼠标移开时发生。

.invisible {
  opacity: 0;
}

div {
  cursor: pointer;
}

div:hover .invisible {
  opacity: 100%;
  transition: 1s; /* moved this */
}
<div>
  <p>Hover Here</p>
  <p class="invisible">Now you see me</p>
</div>

,

您只需要为两个状态分别指定不同的转换持续时间。仅为悬停状态指定不等于零的持续时间。

(transition: 0s; 表示正常状态——因为你希望它为0,当你返回这个状态时,从悬停状态。可以隐式,如果尚未为该状态设置转换持续时间。)

.invisible{
  opacity: 0;
  /* transition: 0s; */
}

div{
  cursor: pointer;
}

div:hover .invisible{
  opacity: 100%;
  transition: 1s;
}
<div>
  <p>Hover Here</p>
  <p class="invisible">Now you see me</p>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。