【发布时间】:2011-04-07 08:00:15
【问题描述】:
我最近在使用 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:一些额外的代码来创建窗口,在选中时,它被带到另一个拖动的正面:
在可拖动启动功能中——
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);
【问题讨论】:
-
另外,JQuery UI 对话框是在页面上获取浮动 iframe 的一种非常简单的方法:)
-
你有这个或什么的 jsfiddler,所以我可以在上下文中看到它吗?我不确定您是如何设置 html 的,因此您的选择器对我没有任何意义。谢谢
-
嘿。如此简单,但效果很好
标签: jquery iframe draggable resizable