Je suis en train de faire les boîtes de dialogue jQuery restent dans leur position par rapport à la taille de la fenêtre, donc par exemple:jQuery en boucle dans les boîtes de dialogue ouvertes pour obtenir/position de mise à jour de chaque
- Si la largeur de la fenêtre d'origine est 900px et il y a 2 boîtes de dialogue, un à 100100 et un autre à 450.200
- Lorsque la fenêtre est redimensionnée dire 1200px, la première boîte de dialogue serait 400100 et le second à 750.200
J'ai actuellement ce code de gestion de la fenêtre redimensionner, mais il ne met pas à jour le dialogue positi ons:
jQuery(window).resize(function() {
widthCompensation = getBrowserWidths();
jQuery(".dialog-class").each(function() {
var myPosition = jQuery(this).dialog("option", "position");
var newLeft = parseInt(myPosition.context.offsetLeft+widthCompensation);
var newTop = parseInt(myPosition.context.offsetTop);
jQuery(this).dialog("option", "position", [newLeft,newTop]);
});
});
Toute aide serait grandement appréciée!
Code modifié:
function getBrowserWidths() {
var standardWidth = 990;
var actualWidth = parseInt(jQuery(window).width());
var ret = (actualWidth-standardWidth)/ 2;
return(ret);
}
var leftPositions = new Array();
var widthCompensation = getBrowserWidths();
jQuery(window).resize(function() {
widthCompensation = getBrowserWidths();
jQuery(".target-class").each(function(i) {
var newLeft = leftPositions[i]+widthCompensation;
console.log(newLeft);
jQuery(this).css({"left": newLeft+"px"});
});
});
//loop through draggables to get their initial positions
jQuery(".target-class").each(function(i) {
var myPosition = jQuery(this).offset();
leftPositions[i] = myPosition.left;
});
Salut, la fonction getBrowserWidths fonctionne? Est-il possible d'avoir son code? Et juste une chose pour éviter le code de ne pas s'exécuter sur IE, utilisez var widthCompensation = ... sans var, IE est perdu ^^ (pas la seule situation c'est bien ...) –
La fonction getBrowserWidths fonctionne correctement. Le code est: function getBrowserWidths() { \t var standardWidth = 990; \t var actualWidth = parseInt (jQuery (fenêtre) .width()); \t var ret = (largeurWidthWidth standard)/2; \t retour (ret); } J'ai défini la variable widthCompensation plus haut dans le script et j'ai besoin d'y accéder une fois qu'elle a été mise à jour en dehors de la portée de la fonction, donc sans utiliser var dans la fonction. Cela peut être faux, même si je ne suis pas à la hauteur sur les portées de variables JavaScript. – Dan
Je me demandais juste, le problème n'est pas myPosition.context.offsetLeft? Pourquoi ne pas utiliser myPosition.left et myPosition.top? (pas sûr, mais cela m'a semblé plus logique) –