Javascript 可拖动拖动事件限制
我试图在html5画布上制作一个动画,当它移动时,它应该跟随一个可拖动的div,类似这样:Javascript 可拖动拖动事件限制,javascript,jquery-ui,Javascript,Jquery Ui,我试图在html5画布上制作一个动画,当它移动时,它应该跟随一个可拖动的div,类似这样: draggable_div.draggable({ drag: function(e, ui) { canvasDrawSomethingNearDraggable(ui); } stop: function(e, ui) { canvasDrawSomethingNearDraggable(ui); } }); function canv
draggable_div.draggable({
drag: function(e, ui) {
canvasDrawSomethingNearDraggable(ui);
}
stop: function(e, ui) {
canvasDrawSomethingNearDraggable(ui);
}
});
function canvasDrawRectangleUnderDraggable {
for (i = 0; i < 10; i++) { // draw overlapping circles in fixed order
context.beginPath();
context.arc(x[i], y[i], 10, 0, 2 * Math.PI, false);
context.fillStyle = c[i];
context.fill();
context.stroke();
}
}
draggable\u div.draggable({
拖动:函数(e、ui){
可拖动的画布绘图(ui);
}
停止:功能(e、ui){
可拖动的画布绘图(ui);
}
});
函数canvasDraw矩形欠拖动{
对于(i=0;i<10;i++){//按固定顺序绘制重叠圆
context.beginPath();
弧(x[i],y[i],10,0,2*Math.PI,false);
context.fillStyle=c[i];
context.fill();
stroke();
}
}
但是,当我移动可拖动元素时,动画会滞后(移动速度越快,间隙越大,仅当可拖动停止事件触发时,动画才会关闭):
有没有办法解决或减少这个问题?我应该计算拖动事件之间的时间间隔,并以这种方式减少对绘图函数的调用,还是有更好的解决方案?您可能希望取消函数的抖动,这样事件处理程序就不会经常被调用(这会使所有事情都变慢)。例如,见
下划线库()中提供了解盎司的实现。您可以复制该函数以在代码中使用。更容易看到CanvasDrawSomethingNearDragable(ui)函数,但在Dragable div的子对象中拖动开始时,您可能会得到更好的结果,这样画布就会移动。为说明添加了一些非常类似的内容,您的意思是节流,而不是去盎司。如果对其进行解块,则每x毫秒到达的事件流在流停止之前不会导致调用处理程序。