Изменяемый размер пользовательского интерфейса jQuery: автоматическая высота при использовании только восточной ручки

у меня есть jqueryui re-sizable div. Я хочу, чтобы изменялась только ширина, а высота оставалась автоматической, чтобы div увеличивался или уменьшался вместе с содержимым. Если я настрою его на отображение только восточной ручки и использую css height:auto, после изменения размера высота также будет установлена, даже если изменится только ширина. Я должен каждый раз устанавливать высоту автоматически при изменении размера:

resize: function(event, ui) {
    $(this).css('height', 'auto');
}

для предотвращения установки высоты. Есть ли лучший способ предотвратить установку высоты, когда используется только восточная ручка?


person z33m    schedule 14.04.2010    source источник
comment
Я пойду с вашим предложением...   -  person TimS    schedule 21.09.2010


Ответы (1)


Попробуйте установить соотношение сторон И свойство handles:

    $( "#resizable" ).resizable({
        aspectRatio: 16 / 9,
                    handles: 'e'
    });

Вышеупомянутое создаст контейнер, который автоматически изменит размер до соотношения сторон 16/9, только с ручкой на восточной стороне контейнера.

Вот описание с сайта документации по адресу http://jqueryui.com/demos/resizable/#option-containment:

Если указано в виде строки, это должен быть список с разделителями-запятыми любого из следующего: 'n, e, s, w, ne, se, sw, nw, all'. Необходимые дескрипторы будут автоматически сгенерированы плагином.

Если указано как объект, поддерживаются следующие ключи: { n, e, s, w, ne, se, sw, nw }. Значение любого указанного должно быть селектором jQuery, соответствующим дочернему элементу изменяемого размера для использования в качестве этого дескриптора. Если дескриптор не является дочерним элементом изменяемого размера, вы можете напрямую передать DOMElement или допустимый объект jQuery.

Примеры кода

Инициализируйте изменяемый размер с указанной опцией handles.

$( ".selector" ).resizable({ handles: 'n, e, s, w' });

Получите или установите параметр handles после инициализации.

//getter
var handles = $( ".selector" ).resizable( "option", "handles" );
//setter
$( ".selector" ).resizable( "option", "handles", 'n, e, s, w' );
person Chris Lucian    schedule 05.08.2011