399

非常に単純な質問ですが、CSS トランジション プロパティに関する適切なドキュメントが見つかりません。CSS スニペットは次のとおりです。

    .nav a
{
    text-transform:uppercase;
    text-decoration:none;
    color:#d3d3d3;
    line-height:1.5 em;
    font-size:.8em;
    display:block;
    text-align:center;
    text-shadow: 0 -1.5em 0 rgba(255, 255, 255, 0.15);
    -webkit-transition: color .2s linear;
    -moz-transition: color .2s linear;
    -o-transition: color .2s linear;
    transition: color .2s linear;
    -webkit-transition: text-shadow .2s linear;
    -moz-transition: text-shadow .2s linear;
    -o-transition: text-shadow .2s linear;
    transition: text-shadow .2s linear;
}

.nav a:hover
{
    color:#F7931E;
    text-shadow: 0 1.5em 0 rgba(247, 147, 30, 0.15);
}

ご覧のとおり、トランジション プロパティは互いに上書きしています。このままでは、テキストの影はアニメーション化されますが、色はアニメーション化されません。両方を同時にアニメーション化するにはどうすればよいですか? 回答ありがとうございます。

4

9 に答える 9

715

トランジションプロパティは、トランジションをサポートするすべてのブラウザでカンマ区切りです。

.nav a {
  transition: color .2s, text-shadow .2s;
}

easeはデフォルトのタイミング関数であるため、指定する必要はありません。本当にlinear必要な場合は、次のように指定する必要があります。

transition: color .2s linear, text-shadow .2s linear;

これは繰り返しになり始めるので、複数のプロパティで同じ時間とタイミング関数を使用する場合transition-*は、省略形ではなく、さまざまなプロパティを使用することをお勧めします。

transition-property: color, text-shadow;
transition-duration: .2s;
transition-timing-function: linear;
于 2011-08-13T03:12:15.220 に答える
38

編集:私はこの投稿を削除するかどうかに悩まされています。CSS構文を理解する上で、人々がall存在することを知っているのは良いことです。CSSの構造によっては、100万個の個別の宣言よりも望ましい場合があります。一方、その仮説を裏付けるデータはまだ見ていませんが、パフォーマンスが低下する可能性があります。とりあえずそのままにしておきますが、ミックスバッグだということを知ってもらいたいです。

元の投稿:

また、次のようにして簡単に大幅に行うこともできます。

.nav a {
    transition: all .2s;
}

FWIW:all指定されていない場合は暗黙的に示されるtransition: .2s;ため、同じ場所に移動します。

于 2012-06-15T22:17:48.927 に答える
30

次のようなものは、同時に複数の遷移を可能にします。

-webkit-transition: color .2s linear, text-shadow .2s linear;
   -moz-transition: color .2s linear, text-shadow .2s linear;
     -o-transition: color .2s linear, text-shadow .2s linear;
        transition: color .2s linear, text-shadow .2s linear;

例: http: //jsbin.com/omogaf/2

于 2011-08-13T03:09:28.093 に答える
29

すべてのプロパティを同じようにアニメーション化すると、コードを繰り返さないようにそれぞれを個別に設定できます。

 transition: all 2s;
 transition-property: color, text-shadow;

詳細はこちら: CSS transition shorthand with multiple properties?

プロパティ all (transition-property overwrites 'all') の使用は避けます。これは、望ましくない動作や予期しないパフォーマンス ヒットが発生する可能性があるためです。

于 2014-09-16T20:29:39.557 に答える
2
.nav a {
    transition: color .2s, text-shadow .2s;
}
于 2014-07-25T04:43:04.547 に答える
0

2 つのプロパティを一度に移行するための LESS ミックスインを次に示します。

.transition-two(@transition1, @transition1-duration, @transition2, @transition2-duration) {
 -webkit-transition: @transition1 @transition1-duration, @transition2 @transition2-duration;
    -moz-transition: @transition1 @transition1-duration, @transition2 @transition2-duration;
      -o-transition: @transition1 @transition1-duration, @transition2 @transition2-duration;
          transition: @transition1 @transition1-duration, @transition2 @transition2-duration;
}
于 2013-06-26T15:30:02.750 に答える