对于我的应用程序,在拖动元素并将其捕捉到可放置区域后,我需要继续允许该拖动项目仅垂直移动。我已经完成了这项工作,但我还需要将该项目拖动并捕捉到像素增量。怎么办呢?
例如,我有一个时间轴,我需要将元素捕捉到15分钟的增量。我需要知道可拖动功能是否可行,或者我是否需要提供一些滑块混合?如果可能的话,我宁愿不使用某种混合方法。
代码段:
$(".activity_link").draggable({
"snap": ".trek_slider",
"snapMode": "inner",
// "snapTolerance" : 30,
"revert": function (event, ui) {
// on older version of jQuery use "draggable"
// $(this).data("draggable")
// on 2.x versions of jQuery use "ui-draggable"
// $(this).data("ui-draggable")
$(this).data("uiDraggable").originalPosition = {
top: 0,
left: 0
};
$(this).draggable("option", "axis", false);
// return boolean
return !event;
// that evaluate like this:
// return event !== false ? false : true;
}
});
$(".trek_slider").droppable({
"tolerance": "touch",
"over": function (event,
ui) {
var left_position = parseInt($(ui.draggable).css("left"));
$(ui.draggable).find(".activity_caret").show();
$(ui.draggable).draggable("option", "axis", "y");
}
});
答案 0 :(得分:1)
试试这个
$( ".your_div" ).draggable({ grid: [ 1,1 ] });
在上面的示例中,它将在每个方向上仅拖动一个像素
请注意:别忘了添加其他选项。