DOMを使用したHTMLのjavascriptによるアニメーションについて質問があります。この場合、絶対位置とcss + jQueryを使用して、divをアニメーション化します。
したがって、位置x、yの大きな配列を実行すると、アニメーションの実行が非常に遅くなります。100ms(80ms)間隔で実行していますが、レンダリングが十分に速くなく、アニメーションに10秒以上かかるようです...
アニメーションを再実行すると、命令が何らかの形でキャッシュされているように見え(レンダリング)、アニメーションは完全に実行されます。
それからまた5分待つとまた遅くなります。(再度使用されなかったため、削除された低レベルのマシンコードメモリのようです?)
アニメーションを初めて実行する場合、アニメーションをスムーズに実行する方法がわかりません。アニメーションをレンダリングするためにfabric.jsを試しました...同じ問題。最初の実行は遅いです。2回目以降はスムーズです。
function render_mouse()
{
if(play_pos < mousefile_length)
{
$('.mouse').remove();
$("body").append(
$('<div id="mouse" class="mouse"></div>')
.css('position', 'absolute')
.css('top', play_mousefile[play_pos+1] + 'px')
.css('left', play_mousefile[play_pos] + 'px')
.css('width', mousesize)
.css('height', mousesize)
.css('background-image', 'url(images/cursor.png')
);
play_pos = play_pos +2;
}
else {
clearInterval(play_mousetimer);
}
}
UPDATED:
$('#mouse').animate({
left: rec_mousefile[play_pos]+"px",
top : rec_mousefile[play_pos+1]+"px"
},80);