resizeble textarea @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 23 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
darken
новый человек
0
Сообщения: 21
Зарегистрирован: 23.01.05
Заголовок сообщения: resizeble textarea
Сообщение Добавлено: 13 Март 2005, 00:16:14 
Существует ли в природе динамически изменяющийся элемент textarea??
bE(o0L Муж.
постоянный участник
23
Сообщения: 3311
Зарегистрирован: 22.07.03
Откуда: сзабугра
Сообщение Добавлено: 13 Март 2005, 03:00:54 
if(@mental_reader_on()){
видимо ты говоришь о <textarea style='width:100%'></textarea>
}

_________________
можно на ТЫ.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Заголовок сообщения: Re: resizeble textarea
Сообщение Добавлено: 13 Март 2005, 10:43:22 

darken писал(а):
Существует ли в природе динамически изменяющийся элемент textarea??



Брюки превращаются... брюки превращаются...
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 13 Март 2005, 16:29:00 
darken, динамически это как, когда и от какого события?
Traktorist
новый человек
9
Сообщения: 198
Зарегистрирован: 04.10.04
Сообщение Добавлено: 13 Март 2005, 18:37:07 
наверное window.onResize
eo
новый человек
0
Сообщения: 150
Зарегистрирован: 07.06.04
Откуда: масква
Сообщение Добавлено: 14 Март 2005, 10:23:42 
Акела, при нагревании увеличивается, при охлаждении уменьшается :)

_________________
наша жизнь полна чудесных и странных превращений...
Kurilshik
Goldmember
142
Сообщения: 12797
Зарегистрирован: 18.10.04
Откуда: Кожаное кресло
Сообщение Добавлено: 14 Март 2005, 15:00:38 
darken, да если он создан на Java.
Можно еще написать скрипт который бы увеличивал его ширины при щелчке на кнопочке "слишком узко".
Это если я правильно понял термин "динамически изменяющийся текстареа"

_________________

Портфолио - ЖЖ - Кулинарные рецепты - Блог о дизайне, уроки фотошоп

icq: 295346452 | Почта: info()alexey-popov.com

.
darken
новый человек
0
Сообщения: 21
Зарегистрирован: 23.01.05
Сообщение Добавлено: 14 Март 2005, 21:56:31 
При заполнении текстом, textarea автоматически увеличивался и весь текст в элементе был виден!
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 14 Март 2005, 22:01:57 
"Этого нельзя хотеть!" (с)
fidukoff Муж.
Модератор
раздолбай-зануда
188
Сообщения: 8387
Зарегистрирован: 08.12.01
Откуда: Москва
Сообщение Добавлено: 16 Март 2005, 23:44:23 
Акела, ;) не точная цитата:
"ты этого не должен хотеть!" (с) Crazy

или

"ты не должен этого хотеть!" (с) Crazy

_________________
Life is short, paddle hard!!!
Обмен ссылками
Каяк-видео
Ainur Муж.
соучастник
16
Сообщения: 731
Зарегистрирован: 15.09.04
Откуда: Italia
Сообщение Добавлено: 16 Март 2005, 23:59:35 
darken, Ты сам понял что спросил?
Я нет… Но мне очень интересно.
bE(o0L, судя по всему он это и имел в виду, но ,наверно, мы об этом уже никогда не узнаем :)
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 17 Март 2005, 00:54:19 

darken писал(а):
При заполнении текстом, textarea автоматически увеличивался и весь текст в элементе был виден!



Ну предположим, что ты этого добился. И имеешь на странице текстовое поле в четыре экрана высотой.

И в чем кайф?
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 17 Март 2005, 00:57:12 
fidukoff, ок! Тогда это будет мой копирайт. "По мотивам Crazy"

А вот не факт, что высотой! А может быть человек хочет шириной? Для длинных фраз?
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 17 Март 2005, 01:50:13 
информация к размышлению.

Код:
<html>
<head>
<script language="javascript">

function resizetxt() {
   txtrows = txt.value.split("\n");
   newrows = txtrows.length+1;
   txt.rows = newrows;
}

</script>
</head>

<body>
   <textarea style="overflow: visible;" wrap=hard id="txt" name="txt" rows=2 cols=40
      onfocus="resizetxt()"
      onchange="resizetxt()"
      onkeyup="resizetxt()"
      onkeydown="resizetxt()"
      onkeypress="resizetxt()">Abrakadabra!</textarea>

</body>
</html>


функция resizetxt - для того, чтобы это работало в FF (в опере попробуйте, расскажите как работает - я не за своим компом - тут только IE и FF), а IE нормуль сработает и с указанием стия overflow.

Глюки:

В FF не работает стиль overflow и свойство wrap, поэтому при написании слишком длинной строки без пробелов появляется горизонтальная прокрутка, а при написании длинной строки с пробелами (при ее автоматич. переносе) не срабатывает функция resizetxt, и появляется вертикальная прокрутка. Что будет в Опере - даже знать не хочу :insane:

Так что дорабатывать и дорабатывать..
Кстати, если посчитать в массиве txtrows количество строк, длина которых превосходит значение cols у textarea, то можно будет прибавлять это значение к rows, и все будет шоколадно. По крайней мере, вертикальной прокрутки не будет.

И еще. В FF эта функция работает корректно только если моноширинным шрифтом стоит Courier New. В случае с Lucida Console приходится newrows умножать на 1.2. Вот такие пироги...так что работы еще дофигищща, и как обычно, из-за движка гекко :killanasshole: В ИЕ, как это ни обидно, все работает при указании стиля overflow:visible :insane:

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 17 Март 2005, 01:51:50 
тоесть если страничка будет юзаться только из-под ИЕ (гыгы), то хватит вот этого:

Код:
    <textarea style="overflow: visible;" wrap=hard rows=2 cols=40>Abrakadabra!</textarea>

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 17 Март 2005, 02:07:25 
Акела, fidukoff, :beer:
хотеть этого лучше не хотеть :fie:

Crazy, есть различные расстройства психики (шизофрения, мания величия, герантофилия и т.п.). Человек, который страдает клаустрофобией (э...типа Санта Клаусов боится и все такое :lol: ), мечтает, чтобы стены и потолок в комнатах (особенно в лифтах) раздвигались в разные стороны и куда подальше :glasses:

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 17 Март 2005, 02:48:08 
Бaзиль, ну повеселил! :) В ИЕ ессно работает. ФайрФокс 1.01 открывает поле сразу в три строки и оно спокойно себе живёт как обычное поле, то есть выдавая стандартную прокрутку при необходимости и никуда не уходя от размера в три строки. В Опере (8бета3) фичаf работает, но очень смешно: сразу открывается в две строки с полосой прокрутки, но без движка на ней. При переполнении поле увеличивается, но при этом последняя строка остаётся пустай, полоса прокрутки растягивается, но без движка как-то непонятно зачем существует. Ох... :lol:
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 17 Март 2005, 11:09:03 
Код:
<html>
<head>
<script language="javascript">

function resizetxt() {
   txtrows = txt.value.split("\n");

   stmp=0;

   for(i=0;i<txtrows.length;i++){
      if(txtrows[i].length>txt.cols){

         stmp=stmp+Math.ceil(txtrows[i].length/txt.cols);

         txtrowsstr = txtrows[i].split(" ");
         for(j=0;j<txtrowsstr.length;j++){
            if(txtrowsstr[j].length>txt.cols){ stmp=stmp-Math.ceil(txtrowsstr[j].length/txt.cols); }
         }
      }
   }

   txt.rows = txtrows.length + stmp + 1;
}

</script>
</head>

<body>
    <textarea style="overflow: visible;" wrap="hard" id="txt" name="txt" rows=2 cols=41
        onfocus="resizetxt()"
        onchange="resizetxt()"
        onkeyup="resizetxt()"
        onkeydown="resizetxt()"
        onkeypress="resizetxt()">Abrakadabra!</textarea>
<br>

</body>
</html>


вот так вот работает в FF 1.0.1. Автоперенос строк и длинные слова тоже учитывает, правда перенос сделать так и не удалось, поэтому при вводе длинного слова получается горизонтальная прокрутка...и фиг с ней... Только вот если строка состоит из длинных слов через пробел, то все-таки вылазит скролл, мать его.

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 17 Март 2005, 11:09:55 
...и торомозиииииииит.……..

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
Акела Муж.
Констататор
17
Сообщения: 7419
Зарегистрирован: 15.11.04
Сообщение Добавлено: 17 Март 2005, 11:25:59 
Бaзиль, тренируетесь? :lol:
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 17 Март 2005, 22:08:16 
Акела, не то слово :laugh: Работы до попы, а я сижу вот и фигней страдаю :chih:

оффтопик:
почему на "вы"?

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
darken
новый человек
0
Сообщения: 21
Зарегистрирован: 23.01.05
Сообщение Добавлено: 18 Март 2005, 00:39:32 

Цитата:
Ну предположим, что ты этого добился. И имеешь на странице текстовое поле в четыре экрана высотой.

И в чем кайф?



Кайфа нет, если поле высотой в 4 экрана и большой длины... А вот если необходим элемент скажем 100px на 40px или меньше, то скролл совсем нежелателен. Очень удобная фича для редактирования мелких элементов или меню... Для простого набора текста упаси бог использовать:)

Бaзиль, спасибо за потраченное время (надеюсь не много), но работает кривовато:(
Бaзиль Муж.
участник
49
Сообщения: 1288
Зарегистрирован: 13.02.05
Откуда: Околомосковье
Сообщение Добавлено: 18 Март 2005, 01:02:44 
под ФФ криво, под ИЕ прямо.
раз уж нет другого выбора - юзай так, как есть, только из-под ИЕ.

если так уж хочется (или нужно) под ФФ и под Оперу - вперед, зачатки скрипта уже есть, направление ясно, MSDN на месте :cool:

а насчет набора текста, кстати, эту фишку можно было бы юзать в некоторых случаях...только зачем?.. :glasses:

_________________
Не кочегары мы, не плотники,
Но сожалений горьких нет -
Как нет?
А мы дизайнеры-художники,
И с высоты вам шлем привет -
Привет!
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 23 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100