Chromeで、ページ読み込み時に、transitionのバグが発生してしまう時の解決策

・Chromeで、ページ読み込み時に、transitionのバグが発生してしまう…。
このバグを、解決するための方法を教えてほしいな!



という悩みを解決できる記事を書きました。


【この記事の信頼性】
当ブログ(RENBLOG)の編集長である僕は、これまでホームページ制作に約40サイト以上、携わらせて頂いております。

また、当ブログ(RENBLOG)は、記事数は少ないですが、数ページほど、10以内を獲得している為、割と信頼できるのではと思います。



このように、Google Chrome で、ホームページやブログの、ページを読み込んだ時に、一瞬だけ文字が style.css の当たっていないデフォルトの表示になることがあります。


Google Chrome と transition の、相性の悪さによって起こるバグの、簡単な解決策をご紹介しますね。

Chromeで、ページ読み込み時に、transitionのバグが発生してしまう時の解決策

解決策の結論は、</head>の直前に、下記のコードを追記してください。

<script>console.log("")</script>


全体像を見るとこのような感じになります。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title></title>
  <meta name="description" content="">
  <link rel="stylesheet" href="css/style.css">
  <script>console.log("")</script>
</head>
<body>
</body>
</html>


もう少しだけ深堀りして、解説しますね!

Google Chrome × transition = バグが発生する理由

ホームページのグローバルナビが、ページ読み込み時にチラつく為、
まず、Webフォント関係を疑いましたが、どうやら違ったみたいです。


<link>タグを外したりと、いろいろ検証した結果、どうやら、transition: .5s; が怪しいという、疑いが出ました。


transition: 3s; にすると、分かりやすいかもです。



これは、Google Chrome 特有のバグらしく、style.css が、ページ読み込み時にすぐに適用されないというのが原因らしいです。


「初期 DOM 構築後になると、新規にクラスが設定されたとして…」


と詳しい説明は、Chrome の CSS transition がページロード時に動いてしまう問題の機序と対処を参考にしていただきつつ、


繰り返しになりますが、</head>の直前に、

<script>console.log("")</script>


このコードを追記すると、バグが簡単に解決できますので、参考になればと思います。


補足事項として、

script の中身は何でも大丈夫ですが、空にするのはNGです。
(単純にスキップされます。)

また、空白のみでも問題なしですが、module bundlerminifier に消されてしまう可能性があるので、ご注意ください。
(僕は、module bundlerminifier も触れないので、空欄にしております。)


今回は、以上です。

SNSでもご購読できます。

コメントを残す

前の記事

次の記事