Я пытаюсь создать свой собственный плагин Drag and Drop.
Мой плагин:
$.fn.drag = function(options) {
var defaults = {
revert: false,
onDrag: function() {},
onDrop: function() {}
};
var o = $.extend(defaults, options);
return this.each(function() {
var position = $(this).position();
var ptop = position.top;
var pleft = position.left;
var down = false;
$(this).mousedown(function(event) {
down = true;
$(this).css({
cursor: 'move',
}).mousemove(function(event) {
if (down == true) {
$(this).css({
cursor: 'move',
});
var w = $(this).width();
var h = $(this).height();
var left3 = (w / 2) + 7;
var top3 = (h / 2) + 7;
$(this).css({
cursor: 'move',
left: (event.clientX) + (3 * 3) - left3,
top: (event.clientY) + (3 * 3) - top3
});
}
}).bind('mousemove', o.onDrag).mouseup(function() {
down = false;
$(this).css({
cursor: 'default',
});
if (o.revert == true) {
$(this).animate({
top: ptop,
left: pleft
}, 300);
} else {}
}).bind('mouseup', o.onDrop);
});
});
}
Моя проблема: В тот момент, когда я пытаюсь перетащить соответствующий элемент, он центруетсякурсор внутри.Я сделал это специально, потому что я не знал, как это сделать, поэтому, если я нажму на любую часть элемента, он будет перетаскивать.Как вы можете видеть здесь
Центрирующий курсор внутри кода элемента:
var w = $(this).width();
var h = $(this).height();
var left3 = (w / 2) + 7;
var top3 = (h / 2) + 7;
$(this).css({
cursor: 'move',
left: (event.clientX) + (3 * 3) - left3,
top: (event.clientY) + (3 * 3) - top3
});
Есть ли способ не центрировать курсор внутри элемента и иметь возможность перетаскиватьэлемент, где вы нажимаете его?
Заранее спасибо: D