JQuery Draggable:鼠标释放后是否可以捕捉到网格?

Ern*_*ngs 4 jquery-ui draggable

基本上,我想使用网格选项将可拖动的div捕捉到30 x 30网格,但我想保持拖动平滑.那么有没有一种方法可以在鼠标释放时捕捉到网格(或类似的东西)

Rut*_*tyj 5

对@Zed进行校正后,这将使用中心来决定将哪个网格放入其中.大多数可拖动的网格都是其中的一个.

stop: function(e, ui) {
    var grid_x = 30;
    var grid_y = 30;
    var elem = $( this );
    var left = parseInt(elem.css('left'));
    var top = parseInt(elem.css('top'));
    var cx = (left % grid_x);
    var cy = (top % grid_y);

    var new_left = (Math.abs(cx)+0.5*grid_x >= grid_x) ? (left - cx + (left/Math.abs(left))*grid_x) : (left - cx);
    var new_top = (Math.abs(cy)+0.5*grid_y >= grid_y) ? (top - cy + (top/Math.abs(top))*grid_y) : (top - cy);

    ui.helper.stop(true).animate({
        left: new_left,
        top: new_top,
        opacity: 1,
    }, 200);
},
Run Code Online (Sandbox Code Playgroud)