我最近在使用 JQuery Draggable 和 Resizable 插件时遇到了一些麻烦。在寻找解决方案时,我在许多不同的地方发现了一些非常零散的代码,最后提交了一个干净的解决方案,这似乎对我来说几乎完美地工作。
我想我会与其他人分享我的发现,如果他们也遇到这个问题。
我有一个包含 IFrame 的 div。这个 div 必须是可调整大小和可拖动的。很简单 - 将 jquery 可拖动和调整大小添加到 div 中,如下所示:
$("#Div").draggable();
$("#Div").resizable();
一切都很好,直到您拖动另一个包含 iframe 的 div 或尝试通过移动当前 iframe 来调整当前 div 的大小。当超过 iframe 时,这两个函数都会停止。
解决方案:
$("#Div").draggable({
start: function () {
$(".AllContainerDivs").each(function (index, element) {
var d = $('<div class="iframeCover" style="zindex:99;position:absolute;width:100%;top:0px;left:0px;height:' + $(element).height() + 'px"></div>');
$(element).append(d);});
},
stop: function () {
$('.iframeCover').remove();
}
});
$("#Div").resizable({
start: function () {
$(".AllContainerDivs").each(function (index, element) {
var d = $('<div class="iframeCover" style="z-index:99;position:absolute;width:100%;top:0px;left:0px;height:' + $(element).height() + 'px"></div>');
$(element).append(d);
});
},
stop: function () {
$('.iframeCover').remove();
}
});
享受!
PS: Some extra code to create windows which, when selected, are brought to the front of the other draggables:
在可拖动的启动功能中 -
var maxZ = 1;
$(".AllContainerDivs").each(function (index, element) {
if ($(element).css("z-index") > maxZ) {
maxZ = $(element).css("z-index");
}
});
$(this).css("z-index", maxZ + 1);