【问题标题】:How can I make a text transition with innerHTML smooth, with a fade in/out when it changes?如何使 innerHTML 的文本过渡平滑,并在更改时淡入/淡出?
【发布时间】:2019-02-08 01:16:34
【问题描述】:

这是我的第一篇文章,所以如果我对发帖格式或其他内容有点偏离,请原谅我。所以我正在为一个游戏团队编写一个网站,当你将鼠标悬停在一个名字上时,他们希望他们的花名册(里面有球员名字的盒子)展开并提供一些信息。我已经让它扩展和更改文本,但它看起来有点突然。有没有办法让文字变化更流畅?我不能为每个 CSS 设置单独的 CSS,因为至少会有 20 个。到目前为止,我的进展如下。提前致谢!

    function replace(element, replacement) {
      element.innerHTML = replacement;
    }

    function unreplace(element, replacement) {
      element.innerHTML = replacement;
    }
.box {
  background-color: #81C441;
  display: inline-block;
  margin: 0px 10px;
  text-align: center;
  line-height: 180px;
  width: 200px;
  height: 180px;
  margin-bottom: 20px;
  font-family: arial;
  transition: 1s;
  transform: scale(1.0);
}

.box:hover {
  transition: 1s;
  transform: scale(1.1);
}
<div class="boxcontainer">
  <div onmouseover="replace(this, 'ROLE')" onmouseout="unreplace(this, 'NAME')" class="box w3-center w3-animate-top">NAME</div>
</div>

【问题讨论】:

  • 在你的 CSS 中使用 @keyframes 怎么样?您可以使用一个关键帧来处理多个元素的单一类型的动画。虽然功能不同,但这里有一个示例:stackoverflow.com/questions/11679567/…
  • 感谢您的回答!我已经能够让事物淡入和淡出,我只是在努力让它淡出,改变,然后淡入。对不起,不够清晰。

标签: javascript html transition


【解决方案1】:

您不能(轻松)为 content 的更改设置动画 - 使用相同的逻辑,例如,您不能为 font-family 设置动画。

但是,您可以重叠两个文本,只需将鼠标悬停在父元素上而不使用 JS 即可更改它们的属性。

包括演示。

.wrapper {
   position: relative;
}

.toHide, .toShow {
  transition: opacity 1s ease-in-out;
  position: absolute;
}

.toShow {
  opacity: 0;
}

.wrapper:hover .toHide {
  opacity: 0;
}

.wrapper:hover .toShow {
  opacity: 1;
}
<div class="wrapper">
  <span class="toHide">NAME</span>
  <span class="toShow">POSITION</span>
</div>
<br>
<div class="wrapper">
  <span class="toHide">NAME</span>
  <span class="toShow">POSITION</span>
</div>
<br>
<div class="wrapper">
  <span class="toHide">NAME</span>
  <span class="toShow">POSITION</span>
</div>
<br>
<div class="wrapper">
  <span class="toHide">NAME</span>
  <span class="toShow">POSITION</span>
</div>

【讨论】:

  • 这正是我所需要的!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2017-10-04
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
  • 1970-01-01
  • 2013-10-14
  • 1970-01-01
  • 2016-05-13
相关资源
最近更新 更多