2016-05-28 9 views
8

要素へのトランジション効果の一部を避けたい(たとえば、opacity)。 opacity 0sを使用する必要があります。これはデフォルト値にする必要があります。つまり、トランジションはこれに影響しません。しかし、それはこのようには機能しません。これは私が試したものです:CSSトランジション0秒(ゼロ秒)が動作していませんか?

div { 
 
    width: 100px; 
 
    height: 100px; 
 
    opacity: 0.5; 
 
    background: red; 
 
    -webkit-transition: all 2s, opacity 0s; 
 
    transition: all 2s, opacity 0s; 
 
} 
 

 
div:hover { 
 
    width: 300px; 
 
    opacity: 1; 
 
} 
 
<div></div>

div { 
 
    width: 100px; 
 
    height: 100px; 
 
    opacity: 0.5; 
 
    background: red; 
 
    -webkit-transition: all 2s, opacity 0.1s; 
 
    transition: all 2s, opacity 0.1s; 
 
} 
 

 
div:hover { 
 
    width: 300px; 
 
    opacity: 1; 
 
} 
 
<div></div>

opacity0s0.1sに変更された場合しかし、それは(0.1秒の期間で)動作します、アニメーションを他の方法で「無効にする」方法があるのでしょうか?おそらく、0.1秒という小さな値を設定しなくても動作しますか?ここで

+0

スニペットを追加してくれてありがとうJuhana(私はニックネームを忘れました)。私はそのトリックに続き、別のコードに同じようにして、 '0s'と' 0.1s'の違いを表示しました。 – cathe

+1

あなたの 'transition-property'として' all'を使うのはあまり効率的ではありません。可能な限り、移行したい実際のプロパティを使用する必要があります。上の例の場合、それは単に 'width'です。 – Shaggy

+0

非常に興味深い質問@captheと奇妙な動作は、仕様がこう言っているからです。*プロパティが 'transition-property'の値で複数回指定されている場合(それを含む短縮形を介して、または 'all '値)であれば、開始するトランジションは、そのプロパティのアニメーション化を呼び出す' transition-property 'の値の最後の項目に対応するインデックスでduration、delay、およびtiming関数を使用します。複数のブラウザでこれをテストしましたか?行動は同じですか? – Harry

答えて

2

が(なぜこの私にはわからない)0sとしてこの

transition: all 2s, opacity 1ms;

ためのソリューションは、このための有効な時間ではありませんです。 1msは人間の目のために非常に小さい時間である可能性があります(0s)。

また、現時点での問題については、widthにのみ適用可能なtransition: width 2sを使用することもできます。

関連する問題