標題可能有點混淆,我會解釋。我用jQuery製作了一個可拖動的div(而不是jQuery UI的可拖動)。這是代碼:jQuery的Draggable div,如何應用單擊元素的偏移量?
let target = null;
this.el.on('mousedown', (ev) => {
target = this.el;
}).on('mouseup', (ev) => {
target = null;
});
$(document.body).on('mousemove', 'div', (ev) => {
if(target) {
this.x = ev.pageX;
this.y = ev.pageY;
this.update(); // update css
}
});
代碼非常簡單,而且效果很好。問題是當我從中心或任何地方拖動,而不是左上方的元素始終跟隨光標的協調時,所以總是將左上方的元素放置在我拖動的位置。是的,這是正確的,因爲這是我所做的,但我想從拖動的位置移動元素。
這很難解釋,所以我會給更容易的一個。如果在(0,0)中有一個盒子(div)並且尺寸爲5x5,並通過點擊(0,0)到(10,10)來移動盒子,則它的目標應該是(10,10)。但是,如果我通過拖動(2.5,2.5)到(10,10)來移動框,目標必須是(12.5,12.5),而不是(10,10)。
但是在我的代碼中,目的地是(10,10),而不是(12.5,12.5),因爲點擊點的偏移量不適用於翻譯。
如果您還不明白我的問題是什麼,請參閱jquery-ui's draggable example。這正是我想要的。
我知道是什麼問題,但我所有的嘗試都行不通,所以我在這裏需要一點幫助。任何建議將非常感激!
例子是here!
你可以包括你的HTML太,和/或plunker所以我們可以看到你在行動至今好嗎? – Delosdos
這是個好主意。好的[這裏](http://jsbin.com/jazotiwere/edit?html,js,output)。 – modernator