为什么在一个元素的不同时间进行颜色转换?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么在一个元素的不同时间进行颜色转换?相关的知识,希望对你有一定的参考价值。

首先我有段落,第二(内)也有段落。

两个段落都有蓝色文本,当鼠标悬停在第一个(悬停)时,颜色变为红色。颜色过渡是动画的。

我的问题是颜色在两个段落中不会同时改变。第二次变成红色。我需要在同一时间过渡。

为了避免问题,我必须将第二段从内部移动到第一段。或者从CSS中删除star *(下面的示例代码)。

在我的实际情况中,情况更复杂,我无法从内部移动段落。从CSS中删除星没有任何变化。

问题在Chrome上比FireFox更明显。

我无法展示真实的例子,所以下面很简单。但它显示了延迟第二段过渡的问题。

.first_div {color: #00f }
.first_div:hover { color: #f00 }
.first_div * { transition: color 800ms linear }
<div class="first_div">
  <p>first</p>
  <div>
    <p>second</p>
  </div>
</div>

你可以在https://jsfiddle.net/xwzt4pyL/2/上测试代码

如何动画并行转换动画?

答案

这样做

将转换放在第一个div上,不需要在第一个div中定位所有内容,因为转换将应用其中的所有内容并且它将同时应用它而不是排队转换

.first_div {
  color: #00f;
  transition: color 800ms linear;
}

.first_div:hover {
  color: #f00;
}
<div class="first_div">
  <p>first</p>
  <div>
    <p>second</p>
  </div>
</div>

以上是关于为什么在一个元素的不同时间进行颜色转换?的主要内容,如果未能解决你的问题,请参考以下文章

不同活动的片段之间的共享元素转换

如果在同一位置有两个具有两种不同颜色的顶点,片段会得到啥颜色?

共享元素转换在父片段和子片段之间不起作用(嵌套片段)

突出显示元素,然后转换回原始颜色

带有共享元素的 Android 片段转换

跨活动的片段之间的共享元素转换不一致