###前提・実現したいこと
jQueryやcssのアニメーションを使わずにクリックした箇所に要素(赤いボックス)を移動させるプログラムを考えています。clientX、clientYを使いクリックした箇所の値を取得し、その値を要素のcssを書き換える所まではできました。
そのため要素の移動はできたのですが、パッパッと移動している状態です。
https://jsfiddle.net/ululami/ou3nqeog/1/
要素の移動をパッパッと移動させずに、下のイメージ図の通りに要素の移動間をアニメーションで表現させたいです。
###試したこと
setIntervalを使って、アニメーションを表現しようと思ったのですがうまくいかず、例えばA地点をクリックし、B地点をクリック、さらにC地点をクリックすると、この三箇所をループして移動してしまいます。
最終的にはイージングをかけてアニメーションさせたいのですが、まずは等速でアニメーションさせようと思っています。
ご回答よろしくお願いします。
ソースコードをjsfiddleにアップしていますのでご活用ください。
https://jsfiddle.net/ululami/c92arynz/
###該当のソースコード
javascript
1var x = 0; 2var y = 0; 3 4function moveBox(event){ 5 x = event.clientX; 6 y = event.clientY; 7 document.getElementById('box').style.left = x + 'px'; 8 document.getElementById('box').style.top = y + 'px'; 9} 10 11document.addEventListener('click', function(event){ 12 setInterval(function(){ moveBox(event); }, 1000); 13});
html
1<div id="box"></div>
css
1*{ 2 margin: 0; 3 padding: 0; 4} 5 6#box{ 7 width: 50px; 8 height: 50px; 9 background: red; 10 position: absolute; 11}

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/09 06:05
退会済みユーザー
2017/10/09 06:14
2017/10/09 16:08