网格打开时如何获得可拖动div的方向?
How to get direction of draggable div when grid is on?
您好,我正在尝试在网格打开时获取可拖动 div 拖动的方向。因此,当我拖动 div 时,左侧的方向或位置由鼠标移动记录,而不是在 div 上完成网格时记录。所以我想知道当网格完成时 div 的方向我的意思是当 div 被拖动以获得网格值时。有可能得到吗?谢谢!
这是我的 JSFiddle:
https://jsfiddle.net/36z1pj2f/
代码:
$(".draggable2").draggable({
grid: [10, 10],
start: function(event, ui) {
this.previousPosition = ui.position;
},
drag: function(event, ui) {
var test = ui.position.left;
console.log("test", test);
var direction = (test > this.previousPosition.left) ? 'right' : 'left';
console.log('moving ' + direction)
this.previousPosition.left = test;
}
});
尝试将网格偏移量添加到您的语句中。这样,您仅在拖动穿过图块(网格)时进行测试。
示例:https://jsfiddle.net/Twisty/36z1pj2f/1/
jQuery
$(".draggable2").draggable({
grid: [40, 40],
start: function(event, ui) {
this.previousPosition = ui.position;
},
drag: function(event, ui) {
var grid = $(this).draggable("option", "grid");
var leftOff = grid[0];
var topOff = grid[1];
var test = ui.position.left;
var direction;
if (test + leftOff < this.previousPosition.left) {
direction = "Left";
this.previousPosition.left = test;
console.log('moving ' + direction)
} else if (test - leftOff > this.previousPosition.left) {
direction = "Right";
this.previousPosition.left = test;
console.log('moving ' + direction)
} else {
direction = "none";
}
}
});
您好,我正在尝试在网格打开时获取可拖动 div 拖动的方向。因此,当我拖动 div 时,左侧的方向或位置由鼠标移动记录,而不是在 div 上完成网格时记录。所以我想知道当网格完成时 div 的方向我的意思是当 div 被拖动以获得网格值时。有可能得到吗?谢谢!
这是我的 JSFiddle:
https://jsfiddle.net/36z1pj2f/
代码:
$(".draggable2").draggable({
grid: [10, 10],
start: function(event, ui) {
this.previousPosition = ui.position;
},
drag: function(event, ui) {
var test = ui.position.left;
console.log("test", test);
var direction = (test > this.previousPosition.left) ? 'right' : 'left';
console.log('moving ' + direction)
this.previousPosition.left = test;
}
});
尝试将网格偏移量添加到您的语句中。这样,您仅在拖动穿过图块(网格)时进行测试。
示例:https://jsfiddle.net/Twisty/36z1pj2f/1/
jQuery
$(".draggable2").draggable({
grid: [40, 40],
start: function(event, ui) {
this.previousPosition = ui.position;
},
drag: function(event, ui) {
var grid = $(this).draggable("option", "grid");
var leftOff = grid[0];
var topOff = grid[1];
var test = ui.position.left;
var direction;
if (test + leftOff < this.previousPosition.left) {
direction = "Left";
this.previousPosition.left = test;
console.log('moving ' + direction)
} else if (test - leftOff > this.previousPosition.left) {
direction = "Right";
this.previousPosition.left = test;
console.log('moving ' + direction)
} else {
direction = "none";
}
}
});