Я пытаюсь сделать так, чтобы диалоги jQuery оставались на своих местах относительно размера окна, например:
- Если исходная ширина области просмотра составляет 900 пикселей, и есть 2 диалога, один из которых на 100 100и другой при 450 200
- Когда размер окна изменяется на 1200 пикселей, первый диалог будет 400 100, а второй - 750 200
В настоящее время у меня есть этот код, обрабатывающий изменение размера окна, ноон не обновляет позиции диалога:
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]);
});
});
Любая помощь будет принята с благодарностью!
Модифицированный код:
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;
});