所以我正在写一种绘图脚本,它现在工作得很好(虽然代码仍然需要清理,需要更多的功能),但是当画太多时,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。
我的问题:
如果你画得太多,尤其是在开始和停止的时候,它并没有足够的附加mousemove
到(我假设)DOM 被淹没。
问题:
在不产生延迟的情况下向 DOM 添加许多 div 的有效方法是什么?这可能吗?
笔记:
这是一个个人项目,我对使用以前创建的绘图 API 不感兴趣