2015-02-03 13 views
5

Sto ridimensionando un div con ridimensionabile jQuery e voglio solo ridimensionarne l'altezza.Non mantenere le proporzioni con jQuery ridimensionabile mentre si tiene il turno

sono riuscito a ridimensionare solo durante il trascinamento aiutante di fondo:

$('div').resizable({ 
    handles: 's', 
}); 

Ma se tengo tasto shift, larghezza sta cambiando. Vedere http://jsfiddle.net/6p20qjmr/3/

Come disabilitare questo comportamento?

Modifica: La larghezza del contenitore div può cambiare dopo la chiamata ridimensionabile iniziale.

risposta

2

trovo un modo per ottenere ciò che voglio utilizzare resize parametri e resettare la larghezza dopo ogni ridimensionare evento:

$(".resize").resizable({ 
    handles: 's', 
    resize: function() { 
     $(this).css('width', ''); 
    } 
}); 

Vedi http://jsfiddle.net/6p20qjmr/4/

2
$(function() { 
    var $elt = $(".resize"); 
    var width = $elt.width(); 
    $elt.resizable({ 
     handles: 's', 
     maxWidth: width, 
     minWidth: width 
    }); 
}); 

questo potrebbe non essere la soluzione migliore, ma io non sono super familiarità con la funzionalità ridimensionabile di JQuery UI. Non sono nemmeno sicuro del motivo per cui il cambio di turno cambia la funzionalità. Se potessi spiegarlo, potrei essere in grado di fornire una soluzione migliore che sembra meno hacky.

Fiddle: http://jsfiddle.net/6p20qjmr/

+0

che potrebbe essere una soluzione, ma il mio la larghezza del div potrebbe cambiare ... - C'è una riga nell'interfaccia utente jQuery che abilita il mantenimento del rapporto: '' if (this._aspectRatio || b.shiftKey) '' –

+0

@ Tyrius non sono sicuro di aver capito. Specificando 's' come unica opzione, non significa che dovresti essere in grado di rendere l'elemento più alto? – thatidiotguy

+0

Il tasto 'Shift' abilita' aspectRatio: true'; Tuttavia, anche se uso 'aspectRatio: false' l'aspetto' Shift' lo sovrascrive. – Runcorn

Problemi correlati