我有一个可拖动和可放置的布局。我从一个预先输入的搜索选择中添加它时创建一个可拖动的对象。不过我有一些"安置"的问题。可拖动对象的大小远大于应该放入的容器。这会导致一些丢弃问题。
我想在拖动开始时将元素的大小调整为<strong>当前大小的一半。我该怎么做呢?除非width
的{{1}}设置为.semester
左右,否则问题不会出现在小提琴中。
这里是JSFiddle
在实施了@ user619081解决方案后,我希望只有在对象非常大的情况下才能实现。我创建了一个全局变量30%
并将代码更新为以下内容:
var tempWidth
答案 0 :(得分:8)
您需要挂钩拖动开始并拖动可拖动窗口小部件的停止事件。
点击此处了解更多相关信息:
既然你知道如何使用它们,你可以这样做:
$(".courseBox").draggable({
revert: "invalid",
containment: "document",
cursor: "move",
start: function(event, ui) {
$(ui.helper).css('width', "50%");
},
stop: function(event, ui) {
$(ui.helper).css('width', "100%");
}
});
请注意 ui.helper 保存对您要拖动的元素的引用,这就是您在代码中看到它的原因。
这里也是working fiddle。
答案 1 :(得分:2)
您应该查看ondragstart和ondragstop事件。如果你需要传递一些关于DOM元素原始状态的信息,比如原始宽度或其他东西,请查看ev.originalEvent.dataTransfer。
$(".courseBox").on('dragstart', function(ev) {
$(this).css('width', '50%');
});
$(".courseBox").on('dragstop', function(ev) {
$(this).css('width', '100%');
});
答案 2 :(得分:1)
I have updated your fiddle just check it.
It is working with targeted width size