私はこれを含むHTMLファイルを持っています:
<div id="container"></div>
そして、CSS3アニメーションが定義されたスタイルシートがあります。
.image {
position: absolute;
-webkit-animation-name: image-create;
-webkit-animation-duration: 1s;
}
@-webkit-keyframes image-create {
from {
width: 0px;
height: 0px;
}
to {
width: 500px;
height: 500px;
}
}
これにより、画像が0x0から500x500に拡大します。私のJavascriptファイルには次のものがあります。
var findAnimation = function(name) {
for (var i in document.styleSheets) {
var styleSheet = document.styleSheets[i];
for (var j in styleSheet.cssRules) {
var rule = styleSheet.cssRules[j];
if (rule.type === 7 && rule.name == name) {
return rule;
}
}
}
return null;
}
var addImage = function(x, y, src) {
var image = new Image();
image.src = src;
image.className = "image";
image.style.width = "500px";
image.style.height = "500px";
image.style.left = x;
image.style.top = y;
image.onload = function() {
document.getElementById("container").appendChild(image);
var animation = findAnimation("image-create");
for (var i in animation.cssRules) {
var rule = animation.cssRules[i];
if (rule.keyText == "0%") {
rule.style.top = y;
rule.style.left = x;
}
if (rule.keyText == "100%") {
rule.style.top = 0;
rule.style.left = 0;
}
}
}
}
addImage(100, 100, "http://i.imgur.com/KGfgH.jpg");
</ p>
addImage()が呼び出されると、座標(x、y)に画像を作成しようとしています。アニメーションは、画像が作成された場所(x、y)から左上隅(0、0)に移動しながら、成長させる必要があります。
代わりに、Chromeは「Aw、snap」ページにクラッシュします。なぜこれが当てはまるのか誰かが知っていますか?
編集:ここに例があります。http://jsfiddle.net/LVpWS/10/にアクセスすると、クラッシュします。
これで私はいくつかの行をコメントアウトしました、そしてそれはクラッシュしません:http: //jsfiddle.net/LVpWS/21/
EDIT2:Chrome20に戻すと機能します。