Учитывая центрированный DIV, лучшее, что я могу придумать, - это установить ширину в обратном вызове.
$('#divID').resizable({
handles : 'e,w'
, resize : function (event,ui){
ui.position.left = ui.originalPosition.left;
ui.size.width = ( ui.size.width
- ui.originalSize.width )*2
+ ui.originalSize.width;
}
});
Выше просто вычисляется разница между окончательной и исходной шириной и умножается на два, затем добавляет это к исходной ширине.
Я не уверен, что это лучший способ сделать это.Мне, например, это не нравится, так как ширина устанавливается на объекте дважды.Я думаю, что лучшим способом было бы принять какую-то опцию (xRate
или X-Step
) и (yRate
или Y-Step
) и включить ее в часть _mouseDrag:
функции jQuery.
Чтобы сделать это без редактирования jQuery, я думаю, мне нужно создать плагин, который перезаписывает функцию _mouseDrag
изменяемого размера.
Я приму лучшие ответы! :)