J'ai récemment rencontré des problèmes avec les plugins JQuery Draggable et Resizable. À la recherche de solutions, j'ai trouvé un code très fragmenté dans de nombreux endroits différents et finalement classé dans une solution propre qui semble fonctionner presque parfaitement pour moi.JQuery déplaçable et redimensionnable sur IFrames (Solution)
Je pensais que je partagerais mes conclusions pour quelqu'un d'autre, devraient-ils venir à travers ce problème aussi.
J'ai un div qui contient et IFrame. Cette div doit être redimensionnable et glisser. Assez simple - ajouter jquery draggable et redimensionnable à la div comme ceci:
$("#Div").draggable();
$("#Div").resizable();
Tout va bien jusqu'à ce que vous faites glisser sur une autre div contenant un iframe ou essayez de redimensionner votre div actuelle, en se déplaçant sur votre iframe actuelle. Les deux fonctions s'arrêtent au-dessus d'un iframe.
Solution:
$("#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();
}
});
Enjoy!
PS: code supplémentaire pour créer des fenêtres qui, lorsqu'il est sélectionné, sont portés à l'avant des autres draggables:
Dans la fonction de démarrage draggable -
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);
Avez-vous un jsfiddler de ceci ou quelque chose, alors je peux le voir en contexte? Je ne suis pas sûr de la façon dont vous avez configuré votre html, donc vos sélecteurs n'ont aucun sens pour moi. Merci – bladefist
Heh. Si simple et pourtant si efficace –
Aussi les boîtes de dialogue JQuery UI sont un moyen très simple d'obtenir iframe flottant sur la page :) – daitangio