だから私は一種の描画スクリプトを書いていますが、今はうまく動作します (ただし、コードはまだクリーンアップする必要があり、より多くの機能が必要です) mousemove
。主な Javascript は次のとおりです。
$('#canvas').on('mousedown', function(){
going = !going;
$(this).on('mousemove', function(e){
if(cursor == 'paint' && going == true){
$('.fall').each(function(){
if ($(this).css("opacity") == 0){
$(this).remove();
};
});
var ps = $('#canvas').offset().top;
var t = (e.pageY - ps - $('.fall').height()).toString() + 'px';
var l = (e.pageX - $('.fall').width()).toString() + 'px';
$('.fall').css("margin_left",l);
$('.fall').css("margin_top",t);
var doit = '<div class="fall" style="position:absolute;margin-left:' + l + ';margin-top:' + t + ';background-color:'+ color +';box-shadow: 0px 0px 5px ' + color + ';"></div>'
$('#canvas').prepend(doit);
}
else if(cursor == 'erase'){
$('.fall').mouseenter(function(){
$(this).fadeOut('fast',function(){
$(this).remove()
});
});
};
});
基本的に描画する部分をクリックして、ペイントボタンを押せば描画できます: jsfiddle .
私の問題:
特に開始と停止で描画しすぎると、Do に十分に追加されずmousemove
、DOM が圧倒されます (私はそう思います)。
質問:
遅延を発生させずに多数の div を DOM に追加する効率的な方法は何でしょうか? これは可能ですか?
ノート:
これは個人的なプロジェクトであり、以前に作成した描画 API の使用には興味がありません