【问题标题】:CSS Hover jitter issueCSS Hover 抖动问题
【发布时间】:2013-08-31 05:27:15
【问题描述】:

这是我的第一个问题。我通常会尝试很好地研究这些东西,但这个让我发疯。

我需要能够执行与您在此处看到的非常相似的操作(将鼠标悬停在框上): http://dev.ranvel.com/test-hover-method.html

问题是我得到的抖动。看起来很不专业。

我想使用 CSS 和 HTML(而不是图像),因为最终会发生的是框后面会有文字,通过悬停,您会看到翻译。

我已经看到了诸如保持字体不变、删除粗体文本等内容。在这里,整个 div 都在发生变化,而不仅仅是文本。我还看到了“过渡技巧”,您可以在其中增加过渡之间的时间。问题是,有时当鼠标停在 div 上时,它处于“非悬停”状态。

提前致谢!!!

【问题讨论】:

  • 请发布示例代码。如果您想创建一个工作演示,请考虑使用jsfiddle
  • 您将元素隐藏在 mouseOver 上,因此它不再“过度”。然后它回来可见。你做错了。

标签: html css


【解决方案1】:

而不是可见性:隐藏;尝试使用 opacity: 0;

.over:hover {
    opacity: 0;
}

http://jsfiddle.net/6WPHk/

您甚至可以在.over div 上设置过渡:

.over {
    transition: opacity 0.3s;
}

【讨论】:

  • 这个不透明度是我无法想出的缺失环节,因为我没有休息一下。非常感谢!这是一个非常好的修复。非常感谢!
【解决方案2】:

.over 成为.under 的子级可能更容易。

  1. 定位.over会容易得多。
  2. 然后您可以将悬停选择器应用到.under,同时仍然应用 .over 的可见性规则。

JSFiddle

HTML

<div class="main">la la 
    <div class="under">
        <img class="over" src="//lorempixel.com/100/100" alt="">
        Bibendum Etiam Fermentum Mattis
    </div>
</div>

CSS

.under {
    position: relative;
}

.under:hover .over {
    display: none;
}

.over {
    position: absolute;
    top: 0;
    left:0;
}

【讨论】:

  • 您对父/子关系以及执行的想法很棒。太棒了!非常感谢!
猜你喜欢
  • 2016-05-10
  • 1970-01-01
  • 2010-09-27
  • 2021-04-08
  • 1970-01-01
  • 2018-11-06
  • 1970-01-01
  • 1970-01-01
  • 2013-05-08
相关资源
最近更新 更多