jQuery 拖动时可拖动的克隆大小
jQuery draggable clone size while dragging
我正在开发拖放应用程序。我有一个可放置和可拖动的容器。
$( "#dragshock" ).draggable(
{
helper: "clone",
cursor: 'move',
drag: resizeContainer
}
);
拖动调用的函数是这个:
function resizeContainer(e, ui) {
var defaultSize = 108;
var factor = ((ui.position.top)/19);
var correcteSize = defaultSize + factor;
$(this).width(correcteSize);
}
可放置容器上的函数是这个:
$("#selectedpicture").droppable({
drop: function (event, ui) {
var $canvas = $(this);
if (!ui.draggable.hasClass('canvas-element')) {
var $canvasElement = ui.draggable.clone();
$canvasElement.addClass('canvas-element');
$canvasElement.draggable({
containment: '#geselecteerdefoto'
});
$canvas.append($canvasElement);
var defaultSize = 108;formaat
var factor = ((ui.position.top)/19);
var correcteSize = defaultSize + factor;
var imgSize = correcteSize;
$canvasElement.css({
left: (ui.position.left),
top: (ui.position.top),
width: imgSize,
position: 'absolute'
});
}
}
});
目前,draggable 中的 "drag: resizeContainer" 行导致被拖动的容器在拖动时调整大小,而不是跟随鼠标指针的克隆。
不过,我想要实现的是,在拖动时,当在容器内向下拖动时,对象已经在视觉上调整了大小。放下时,应保持调整大小。
我找到了解决办法。这比我想的要容易。
将 resizeContainer 中的 $(this).width(correcteSize) 行替换为
$(ui.helper).width(correcteSize);
我将 fiddle 更新为正确的以供将来参考。
我正在开发拖放应用程序。我有一个可放置和可拖动的容器。
$( "#dragshock" ).draggable(
{
helper: "clone",
cursor: 'move',
drag: resizeContainer
}
);
拖动调用的函数是这个:
function resizeContainer(e, ui) {
var defaultSize = 108;
var factor = ((ui.position.top)/19);
var correcteSize = defaultSize + factor;
$(this).width(correcteSize);
}
可放置容器上的函数是这个:
$("#selectedpicture").droppable({
drop: function (event, ui) {
var $canvas = $(this);
if (!ui.draggable.hasClass('canvas-element')) {
var $canvasElement = ui.draggable.clone();
$canvasElement.addClass('canvas-element');
$canvasElement.draggable({
containment: '#geselecteerdefoto'
});
$canvas.append($canvasElement);
var defaultSize = 108;formaat
var factor = ((ui.position.top)/19);
var correcteSize = defaultSize + factor;
var imgSize = correcteSize;
$canvasElement.css({
left: (ui.position.left),
top: (ui.position.top),
width: imgSize,
position: 'absolute'
});
}
}
});
目前,draggable 中的 "drag: resizeContainer" 行导致被拖动的容器在拖动时调整大小,而不是跟随鼠标指针的克隆。
不过,我想要实现的是,在拖动时,当在容器内向下拖动时,对象已经在视觉上调整了大小。放下时,应保持调整大小。
我找到了解决办法。这比我想的要容易。
将 resizeContainer 中的 $(this).width(correcteSize) 行替换为
$(ui.helper).width(correcteSize);
我将 fiddle 更新为正确的以供将来参考。