javascript - Css 动画以在悬停时扩展按钮文本

标签 javascript css css-animations

我想在鼠标悬停时在按钮上显示更多文本,并且我希望按钮随扩展文本缩小和增大。

我需要一个通用的解决方案,因为按钮上的文本及其宽度将取决于用户选择的语言。

这是我(目前没有工作)的尝试

.hover-value {
  display: inline-block;
  visibility: collapse;
  width: 0%;
  -webkit-transition: width 2s;
  transition: width 2s;
  overflow: hidden;
}
button:hover .hover-value {
  visibility: visible;
  width: 100%;
}
<button>
  Result
  <span class="hover-value">Add new result</span>
</button>

同样在 JsFiddle 上:https://jsfiddle.net/JohanGovers/46392xss/

我在我的元素中使用 jQuery 和 bootstrap,但如果可能的话我想用 css 解决这个问题。我试过按照其他 SO 答案中的建议使用可见性属性,但无济于事。

如有任何帮助,我们将不胜感激。

最佳答案

为了获得最好的动画,我决定为 max-width 属性设置动画。这是因为,目前您无法对 width:auto 进行动画处理。

(将 max-width:7rem 设置为大于文本长度的值。)

为了避免一堆对齐的 CSS,我使用了 display: inline-flex 因为这样可以完美地对齐它而无需使用 vertical-align 等等。 (如果这是一个问题,可以更改。)

然后我使用 white-space:nowrap 将所有文本强制排在一行上,使其动画效果更流畅。

button span {
  max-width: 0;
  -webkit-transition: max-width 1s;
  transition: max-width 1s;
  display: inline-block;
  vertical-align: top;
  white-space: nowrap;
  overflow: hidden;
}
button:hover span {
  max-width: 7rem;
}
<button id="btn">
  Result 
  <span>New result</span>
</button>
<button id="btn">
  Result 
  <span>Different text</span>
</button>

关于javascript - Css 动画以在悬停时扩展按钮文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33888214/

相关文章:

html - 悬停问题 - 悬停时显示图像

CSS 不透明动画 safari 错误?

css - 是否可以为 CSS 蒙版图像设置动画?

html - img 上不透明度的 CSS 关键帧动画不起作用

javascript - PHP 中的分块数组为 3(在 JS 中可以解决)

javascript - 如何设置和使用工具提示?

php - 当用户来自书签时获取以前的 URL?

css - Chrome 不支持 BUTTON 标签的 "writing-mode"?

javascript - 仅当它已经没有时如何将类添加到元素?

javascript - IE 无法将 img 加载到 HTML