CSS トランジションが Visibility プロパティで機能しないのはなぜですか?

DDD
リリース: 2024-11-05 05:23:02
オリジナル
664 人が閲覧しました

Why Do CSS Transitions Fail To Work With the Visibility Property?

CSS トランジションと可視性: 欺瞞的な錯覚

CSS では、トランジションによりプロパティの状態間のスムーズなアニメーションが可能になります。ただし、可視性を移行しようとすると不可解な問題が発生し、ユーザーは当惑し、バグではないかと疑うことになります。

可視性移行のケース

次のコードを考えてみましょう。

<code class="css">#inner {
    visibility: hidden;
    transition: visibility 1000ms;
}

#outer:hover #inner {
    visibility: visible;
}</code>
ログイン後にコピー

このコードは、ID が「outer」の要素の上にマウスを移動すると、ID が「inner」の要素を表示することを目的としています。しかし、残念なことに、移行は期待どおりに機能しません。スムーズな移行ではなく、指定された移行期間に一致する遅延の後に可視性が突然切り替わります。

犯人

根本原因は可視性の性質にあります。財産。連続値 (0 ~ 1) を表す不透明度などのプロパティとは異なり、可視性はバイナリ状態 (表示または非表示) で存在します。この基本的な違いは、補間する中間状態がないため、遷移を妨げます。

遷移可能なプロパティ

遷移は、2 つの数値の間のキーフレームの計算に依存します。不透明度の場合、トランジションは 0 と 1 の間でスムーズにフェードアウトします。ただし、可視性の場合、トランジションには補間に必要な数値範囲が不足します。

結論

一方最初はバグに似ていますが、この動作は CSS トランジションに固有の制限です。スムーズにアニメーション化できるのは、計算可能な値を持つプロパティのみです。可視性などのバイナリ プロパティの場合、突然の状態変化は避けられません。

以上がCSS トランジションが Visibility プロパティで機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!