2016-12-14 40 views
1

你好,我試圖在網格打開的時候拖動可拖動div的方向。所以,當我拖動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; 
    } 
}); 
+0

你想知道哪個方向阻力用戶移動或只是當他們完成拖動? – Twisty

+0

不是什麼時候被弄糊塗了,我想在拖動的時候知道它。 – ReoCro

回答

1

嘗試在網格偏移的聲明,但補充。這樣你只能測試拖動是否穿過一個圖塊(網格)。

例子: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"; 
    } 
    } 
}); 
+0

如何設置偏移量以獲取方向每當div爲左或右格時?所以,當我拖動我的div時,我想立即知道它向哪個方向移動(左或右)? – ReoCro

+0

我已經完成了,我只需要檢查我的當前位置,在這裏我已經把它放在一個新的小提琴https ://jsfiddle.net/acm0joL5/。非常感謝:)。 – ReoCro

+0

正確。很高興你找到了解決方案。 – Twisty

相關問題