【问题标题】:Change part of a text using CSS animation使用 CSS 动画更改部分文本
【发布时间】:2019-07-01 23:38:04
【问题描述】:

我在 HTML 页面中有一个文本,我想用动画更改其中的一部分。

我找到了这个question,但它不适用于我的情况,或者它似乎不是我正在寻找的解决方案。 这是我的代码:

.change:before {
  content: '2';
  opacity: 1;
  animation-name: change-letter;
  animation-duration: 10s;
  animation-iteration-count: infinite;
}

@keyframes change-letter {
  0% { opacity: 0.5; }
  17% { opacity: 0; content: "3"; }
  34% { opacity: 0.5; }
  50% { opacity: 1; }
  66% { opacity: 0.5; }
  85% { opacity: 0; content: "2"; }
  100% { opacity: 0.5; }
}
<span>My application version <span class="change"></span></span>

如您所见,动画未按预期工作。我的意思是“2”在“3”之前出现两次,然后“2”再次出现,不透明度为 1 而不是 0.5。请查看 CSS 代码并仔细查看动画。动画的每一步似乎都没有遵循 CSS 代码。你能弄清楚我的代码有什么问题吗?如何使文本的最后部分以正确的方式变化?

【问题讨论】:

  • 请澄清您的具体问题或添加其他详细信息以准确突出您的需要。正如目前所写的那样,很难准确地说出你在问什么。
  • “未按预期工作” - 您忘记提及您的期望是什么,以及它们与结果有何不同。
  • 我确实编辑了我的问题。希望现在很清楚。谢谢。
  • before { content: '2'; ==> before { content: '4'; ?

标签: html css css-animations


【解决方案1】:

请查收

.change:before {
  content: '2';
  font-size: 100%;
  animation-name: change-letter;
  animation-duration: 5s;
  animation-iteration-count: infinite;
}

@keyframes change-letter {
  5% {
    opacity: 1;
    content: "2"
  }
  20% {
    opacity: 0.5;
    content: "2"
  }
  40% {
    opacity: 0;
    content: "2"
  }
  45% {
    opacity: 0;
    content: "3"
  }
  60% {
    opacity: 0.5;
    content: "3"
  }
  80% {
    opacity: 1;
    content: "3"
  }
  100% {
    opacity: 0;
    content: "3"
  }
  0% {
    opacity: 0;
    content: "2"
  }
}
<span>My application version <span class="change"></span></span>

【讨论】:

  • 它仍然工作不好......你看到“2”在“3”出现之前闪烁了两次吗?
  • 您的期望是什么,请告诉我要求
  • "2" 具有不透明度 1 -> 不透明度 0.5 -> 不透明度 0;然后出现“3”,不透明度 0.5 -> 不透明度 1 -> 不透明度 0.5 -> 不透明度 0;然后“2”再次出现,不透明度为 0.5 -> 不透明度 1 -> 依此类推...
  • 我已经更新了代码,请检查一下。 @smartmouse
  • 如果这对您有用,请将其作为可接受的答案:)
猜你喜欢
  • 1970-01-01
  • 2021-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 2013-06-11
  • 1970-01-01
相关资源
最近更新 更多