5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?