Недавно я столкнулся с некоторыми проблемами при использовании плагинов JQuery Draggable и Resizable.В поисках решений я нашел очень фрагментированный код во многих разных местах и, наконец, перешел к чистому решению, которое, кажется, работает почти идеально для меня.
Я думал, что поделюсь своими результатами для всех, еслиони тоже сталкиваются с этой проблемой.
У меня есть div, который содержит и IFrame.Этот div должен быть изменяемого размера и перетаскиваемым.Достаточно просто - добавьте перетаскиваемый jquery и изменяемый размер к div, например:
$("#Div").draggable();
$("#Div").resizable();
Все в порядке, пока вы не перетащите другой div, содержащий iframe, или не попытаетесь изменить размер текущего div, перемещаясь по текущему 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);