Mac SafariでのOpacityのチラつき問題とその対策

Mac SafariでWebページの要素に対してCSSプロパティ `opacity: 0;` から `opacity: 1;` にトランジションを適用すると、一部の環境で画面がチラつくという問題が報告されています。

この問題は、ブラウザが要素の透明度を0から1に変化させる際にレンダリングの問題が発生し、画面のチラつきが生じることが原因とされています。

対策

問題を解決する一つの方法として、透明度の値を0ではなく、非常に小さい値(例えば0.01)から1に変化させる方法があります。つまり、`opacity: 0;` を `opacity: 0.01;` に変更します。

この修正により、ブラウザは要素の透明度を完全に0にするのではなく、ほとんど透明な状態からトランジションを開始します。これにより、上記のレンダリング問題と画面のチラつきを回避できます。

以下に、修正後のCSSの例を示します。


    .element {
      opacity: 0.01;
      transition: opacity 1s ease-in-out;
    }

    .element:hover {
      opacity: 1;
    }
    

このコードは、`.element` の透明度をほとんど透明(0.01)から完全に不透明(1)に変化させます。`transition` プロパティは、透明度が変化する速度とパターン(ここでは1秒間で、イージング関数 `ease-in-out` を使用)を制御します。

以上が、Mac SafariでのOpacityのチラつき問題とその対策についての説明です.

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール