LoginSignup
5
4

More than 5 years have passed since last update.

Chromeのtransitionのバグ

Posted at

概要

ChromeでCSS transitionを使用していたらページのロード時にtransitionのアニメーションが起こってしまうバグに遭遇した.
Chromeのバージョンは 35.0.1916.153 mだった.
詳しい原因はわからないが以下の3つの条件を満たせば起こるようだ.

  • 同じドメインにおいたjqueryを読み込んでいる(jquery-1.11.1.min.jsのみ? 他のバージョンは試していないからわからない,googleがホスティングしている物を使うと起こらない.)
  • jsファイルをjqueryのほかに2つ以上読み込んでいる(1つの場合でも低確率で起こる?)
  • scriptタグより後にlinkタグを用いてcssを設定している

解決策

上記の3つの条件を満たさない限り発生することはないので,
linkタグをどのスクリプトタグよりも先に書くことでこの問題は簡単に解決できる.

再現コード

以下は実際に問題が起こるコードである.
jqueryはダウンロードしてtest.htmlと同じディレクトリにおいておく.
更新を何回かするとアニメーションしてしまうのがわかる.
FireFoxなどでは起こらない為,Chromeのバグであると考えられる.

test.html
<!doctype html>
<html>
    <head>
        <meta charset="utf-8">
        <title>transition bug</title>
        <script src="jquery-1.11.1.min.js"></script>
        <script src="test.js"></script>
        <script src="test2.js"></script>
        <link rel="stylesheet" href="test.css">
    </head>
    <body>
        <h2>test</h2>
    </body>
</html>

test.css
h2{
    text-align: center;
    background: black;
    color: white;
    -webkit-transition-property: all;
    transition-property: all;
    -webkit-transition-duration: 1s;
    transition-duration: 1s;
}
test.js
/* 空, このファイルはなくても良い, ただしhtmlのscriptタグは必要*/
test2.js
/* 空, このファイルはなくても良い, ただしhtmlのscriptタグは必要*/
5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4