2016-10-30 9 views
0

コンテキスト - 私はJavascriptのアニメーションを習得しようとしており、私はCodePenを使用しています。 divブロックを特定の距離だけ移動しようとしています。私はW3Schoolsコードでコードを検証したが、何も変わっていないようだ。Codepen - 基本的なJavaScriptのアニメーションが機能しない

問題 - アニメーションが機能していません。 W3Schoolsで同じコードを試してみると、試してみてください。

codepenリンク - http://codepen.io/tusharsaurabh/pen/xEoXex?editors=1111

var elem = document.getElementById("block"); 
pos = 0; 

var animation = setInterval(doMove, 5); 

function doMove() { 
    pos++; 
    console.log(pos); 
    elem.style.left = pos + 'px'; 
    elem.style.top = pos + 'px'; 

    if (pos >= 200) { 
    clearInterval(animation); 
    } 
} 

ブラウザ - Safariの

CodePenでアニメーション作品を作る方法を、私に知らせてください。要素をアニメーション化するために使用

答えて

1

属性は、そのposition属性が非静的(例えばrelativeabsolute)である場合にのみ要素の位置に影響lefttop、です。

これらの2つの位置のいずれかに要素を設定すると、Codepenが機能し始めます。hereを確認できます。

さらに詳しい情報はon MDNでもご利用いただけます。

+0

または単に 'transform:translate(x、y);'を使用してください。これは、 'elem.style.transform = 'translate(' + pos + 'px、' + pos + 'px)'; ' –

+0

@IsmaelMiguel、私はCSS3アニメーションを最初に使用しましたが、 Javascriptを使ってアニメーションをもっとコントロールすることができます(私はここで間違っているかもしれません)。したがって、私はJavascriptでそれをやりたかったのです –

+1

@TusharSaurabhあなたはJavascriptを使ってより多くのコントロールを持っています。しかし、あなたが望むものに応じて、あなたは合ったオプションを使います。 'position:'を変更するとレイアウトの問題が発生する可能性がありますが、 'transform:translate(x、y);'は古いブラウザとは互換性がありません。それはすべて依存する –

関連する問題