2
我想創建自己的拖放插件。拖放 - JQuery插件
我的插件:
$.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);
});
});
}
我的問題:在當我嘗試將它拖到裏面中心光標匹配的元素的時刻。我故意這樣做,因爲我不知道如何製作它,所以如果我點擊它將拖動的元素的任何部分。正如你所看到here
定心光標元素裏面的代碼:
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
他們刪除的小提琴... – pimvdb