Попробуйте использовать опции, присущие функции .draggable () при http://jqueryui.com/demos/draggable/
в основном это говорит о том, что вам нужно установить опцию snap
на true
, например:
$( ".selector" ).draggable({ snap: true, snapMode:'outer', snapTolerance:40 });
snapMode "... определяет, к каким краям элементов привязки будет привязываться перетаскиваемый объект. Игнорируется, если привязка имеет значение false. Возможные значения:" inner "," external "," both "."
И snapTolerance имеет значение «... Расстояние в пикселях от краев элемента привязки, на котором должно происходить замыкание».
Или попробуйте использовать опцию grid
. Это сделано для того, чтобы делать именно то, что вы хотите:
"... Сетка привязывает перетаскивающий помощник к сетке каждые пиксели x и y. Значения массива: [x, y]
Примеры кода ":
Инициализировать перетаскиваемый объект с указанным параметром сетки.
$( ".selector" ).draggable({ grid: [50, 20] });
Получить или установить параметр сетки после инициализации.
//getter
var grid = $( ".selector" ).draggable( "option", "grid" );
//setter
$( ".selector" ).draggable( "option", "grid", [50, 20] );
Надеюсь, это поможет вам.