文字从左到右显示



我希望图像的标题(这是不必要的是一个真正的标题)出现在图像悬停时。文本应该从左到右出现,所以当图像悬停时,它的容器应该在X轴上生长。我已经能够使文本出现在悬停,但过渡效果是我卡住的地方。
这是我尝试过的:

CSS:

.morbid {
  display: none;
  margin-left:10px;
}
a:hover + .morbid {
  position:relative;
  display: block;
}
HTML:

<a>
  <img src='.../goals/sia.png'> 
</a>
<div class="morbid">
This text will appear as you hover your mouse over the image.
</div>

实际上整个div必须增长,文本保持静态,我希望文本被隐藏,除非图像悬停

不能转换display属性的值。可以动画化的属性的完整列表可以在规范中找到。

要使的内容增长并出现,您需要过渡max-width(或width,如果您可以为元素设置固定的宽度),就像下面的代码片段所做的那样。

.morbid {
  width: auto;
  max-width: 0%;
  white-space: nowrap;
  overflow: hidden;
  transition: max-width 1s linear;
}
a:hover + .morbid {
  max-width: 100%;
}
<a href="#">
  <img src='http://picsum.photos/400/200'>
</a>
<div class="morbid">
  This text will appear as you hover your mouse over the image.
</div>

JSFiddle


或者,如果你想让文本从中心开始增长,那么你可以使用transform的绝对定位,如下面的代码片段所示。

.container {
  position: relative;
  width: 400px;
}
.morbid {
  position: absolute;
  left: 50%;
  max-width: 0%;
  white-space: nowrap;
  overflow: hidden;
  transform: translateX(-50%);
  transition: max-width 1s linear;
}
a:hover + .morbid {
  max-width: 100%;
}
<div class="container">
  <a href="#">
    <img src='http://picsum.photos/400/200'>
  </a>
  <div class="morbid">
    This text will appear as you hover your mouse over the image.
  </div>
</div>

JSFiddle

在需要添加过渡效果的元素上使用transition属性。

设置标题大小:

CSS:

.morbid {
    /* display: none; */
    margin-left:10px;
    opacity: 0;
    font-size: 12pt;
    -webkit-transition: font-size 0.25s;
    transition: font-size 0.25s;
}
a:hover + .morbid {
    position:relative;
    /* display: block; */
    font-size: 16pt;
    opacity: 1;
}
HTML:

<a>
    <img src='.../goals/sia.png'> 
</a>
<div class="morbid">
    This text will appear as you hover your mouse over the image.
</div>

我不得不为标题更改opacity而不是更改display属性,因为更改显示属性时动画不显示

相关内容

  • 没有找到相关文章

最新更新