我最近遇到了一些麻煩,使用JQuery Draggable和Resizable插件。尋找解決方案後,我在許多不同的地方發現了一些非常分散的代碼,最後歸檔到一個乾淨的解決方案,這似乎對我來說幾乎完美。JQuery可拖動和通過IFrame調整大小(解決方案)
我想我會分享我的研究結果給其他人,如果他們也來過這個問題。
我有一個包含和IFrame的div。這個div必須是可調整大小和可拖動的。很簡單 - 增加了jQuery可拖動和resizable到div像這樣:
$("#Div").draggable();
$("#Div").resizable();
一切都很好,直到你拖過包含iframe另一個股利或嘗試調整當前的股利,通過移動在當前的iframe中。兩個函數都在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);
你有這樣或東西jsfiddler,所以我可以在上下文中看到它嗎?我不確定你的html設置如何,所以你的選擇器對我來說沒有任何意義。謝謝 – bladefist 2011-11-14 17:04:53
heh。這麼簡單,但工作得很好 – 2013-02-01 13:35:35
另外JQuery UI對話框是一個非常簡單的方法來獲得頁面上的浮動iframe :) – daitangio 2010-09-23 11:49:57