Растягивание textarea - заполнение доступной высоты в окне
Может кто подскажет - есть всплывающее окно, с возможностью ресайза, в окне содержится форма (FormPanel), layout у формы естественно form, форма состоит из нескольких полей. последнее поле (textarea) нужно сделать чтобы заполняло всю доступную оставшуюся высоту - тоесть растягиваем мышкой высоту окна и образовавшееся пространство внизу заполняет textarea.
Знаю уже что нужно использовать anchor каким-то образом, но ничего не получается - если прописать для textarea anchor: '100% -50' то текстовое поле растягивается по высоте, словно других полей и нет, и таким образом уходит далеко за пределы окна вниз. для окна я прописал layout: 'anchor', а для формы - anchor: '100% 100%' таки образом форма занимает всю высоту окна. в visual studio элемент формы можно спокойно заанкорить к верху и низу, но там, можно сказать абсолютное позиционирование, а extjs не использует его (по крайней мере по умолчанию) |
<script type="text/javascript" src="http://yandex.st/jquery/1.7.2/jquery.min.js"></script> <div id=Wrap style="position:fixed;z-index:1200;top:120px;left:0;border:red solid 2px;width:80%;height:430px;max-height:430px;"> aaaaaaaaassssssssssssssssssss<br> saaaaaaaaaaaaaaaaaassssssssssssssssssss<br> saaaaaaaaaaaaaaaaaassssssssssssssssssss<br> saaaaaaaaaaaaaaaaaassssssssssssssssssss<br> saaaaaaaaaaaaaaaaaassssssssssssssssssss<br> saaaaaaaaaaaaaaaaaassssssssssssssssssss<br> saaaaaaaaaaaaaaaaaassssssssssssssssssss<br> <div id=clear style="border:red solid 1px;width:100%;height:3px"></div> <textarea id="MyTex" style="border:blue solid 1px;width:100%;"></textarea> </div> <script type="text/javascript"> var delta = 12; function resizTextar() { heitTex=$('#Wrap').height()-$('#clear').position().top-delta; $('#Wrap #MyTex').css({"height":heitTex}) }resizTextar(); </script> При растягивании div - обращаемся к функции resizTextar() |
Deff,
При чём тут глупое jqйery, вас про ExtJS спрашивают. |
Aetae,
|
В общем, вопрос можно закрыть.
Решил путем компенсации высоты за счет большого отступа от низа, равного суммарной высоте остальных полей, например anchor: '100% -300' - и поле не вылазиит за пределы окна. Правда для каждого окна придется прописывать разное значение, ибо в каждом окне разный набор полей. Но при layout: 'form' это наверное единственное решение - этот лэйаут не очень гибкий в плане позиционирования, зато сам отрисовывает лэйблы полей. Подругому наверное только layout: 'absolute' и прописывать жестко высоту и положение x/y каждого элемента (типа как в VCL получится, например как в Visual Studio :) ) |
danik.js,
Есть плагин в Инете - растягивающий textarea - а не div Тогда просто делаете у дива автовысоту - а растяжение textarea будет автоувеличивать и высоту div до нужных размеров Вот пример http://s1.uploads.ru/i/IZhHA.png http://hostjs-mybb2011.narod.ru/SmiliesBoxes2.htm А в Moзилле и Гугле вроде свойство такое есть по умолчанию |
Deff, вопрос задан в контексте ExtJS, поэтому решение должно быть специфичным и не требовать каких-то плагинов (тем более что все элементы целиком генерируются extjs'ом - исходный html код - пустой)
Собственно, я предположил что кто-то уже работал с extjs и имел счастье решать подобную проблему... Возможно это решается через хитроумное сплетение всяких там панелей с причудливыми layout параметрами... |
danik.js,
В инете вродь есть нативный JS, http://leonid.shevtsov.me/ru/rastyag...a-po-vertikali |
Цитата:
Цитата:
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 21:32. |