【问题标题】:Animated text fill with mix-blend-mode使用混合混合模式填充动画文本
【发布时间】:2016-06-22 05:32:25
【问题描述】:

我遇到了问题,如果我删除“.box-with-text”的“背景颜色”,则文本填充不起作用。

.box-with-text {
  text-transform: uppercase;
  font: bold 6rem Open Sans, Impact;
  background: black;
  color: white;
  mix-blend-mode: multiply;
}

@keyframes stripes {
  to {
    background-size:100% 100%;
  }
}
.wrapper {
  max-width: 300px;
  margin: 0 auto;
}
.container {
  display: flex;
  background: linear-gradient( crimson , crimson) white no-repeat 0 0;
  background-size: 0 100%;
  animation: stripes 5s;
  animation-fill-mode: forwards;
  text-align: center;
}

Codepen

【问题讨论】:

  • “不起作用”是什么意思?如果我删除背景颜色,它看起来效果很好,但由于它使前景色和背景色相同,我看不到文字。
  • @Godwin 我不知道该怎么办,我可以看到透明背景的文字

标签: css animation mix-blend-mode


【解决方案1】:

我在这里猜测您所说的“不起作用”是什么意思,并假设您正在寻找的是白色背景上的白色文本被动画填充为红色(请扩展您的问题解释这不是你想要做的)。

您需要使用不同的混合模式来实现此效果,您可以通过将前景设为黑色和背景设为白色并使用屏幕混合模式来实现:

.box-with-text {
    text-transform: uppercase;
    font: bold 6rem Open Sans, Impact;
    background: white;
    color: black;
    mix-blend-mode: screen;
}

http://codepen.io/Godwin/pen/oLYYvr?editors=1100

【讨论】:

  • 我只想在“box-with-text”中看到没有背景颜色的文本,在我看来,mix-blend-mode 总是需要背景
  • 听起来好像有更好的方法来达到这个效果。您是否尝试过设置overflow:hidden 并将宽度从 0 扩展到 100%?
  • 不,还没有,听起来不错。我会试试看你能帮我写一个代码示例吗?
  • 看看使用overflow:hidden 可以实现什么并先设置宽度,如果遇到问题,再问另一个问题。如果您需要帮助,这里有一个非常相似的问题:*.com/questions/17745983