ГлавнаяWordpressПолезности → Автоматическое растягивание поля (textarea) комментария (версия 2)

Автоматическое растягивание поля (textarea) комментария (версия 2)

Комментариев: 22Автоматическое растягивание поля (textarea) комментария (версия 2)
  • Снова спасибо за скрипт. Проверил также на Chrome и IE - всё работает отлично.
    Но такое одно маленькое замечание. Параметр min-height указывается обязательно, иначе поле будет сжиматься до минимального после полной загрузки страницы и когда по ней нажимаешь. Для примера попробуйте у себя в стилях min-height вырезать и посмотрите что будет.
    P.S. По крайней мере, у себя заметил этот косяк. Параметр rows не спасает никак.

    ОТВЕТИТЬ ↓
    • Вы правы, черт возьми smile А я подумал, что мне показалось. Обновил пост.

      ОТВЕТИТЬ ↓
  • Тимур, просто поразительно удобное и невыносимо простое решение (как и все гениальное) После того, как этот скрипт распространится в народе, полосы прокрутки уйдут в небытие.
    Я в последнее время просто живу на твоем блоге и мне не хочется отсюда уходить. Каждый вновь открытый пост открывает для меня новое решение давно мозолящей глаза проблемы.

    ОТВЕТИТЬ ↓
    • Спасбо! Какие громкие слова, что кажутся они мне лестью. Нет, нет, я не буду брать все это на свой счет, это не совсем про меня пожалуй smile

      ОТВЕТИТЬ ↓
      • Ну какой смысл, Тимур, мне льстить тебе? Я вовсе не хотел этого. Я передавал свои ощущения и абсолютно искренне.

        ОТВЕТИТЬ ↓
        • Я ж написал, "что кажутся". В общем, на самом деле я не имел это ввиду.

          ОТВЕТИТЬ ↓
  • Я в JS полный ноль, по этому сразу написать изменение в скрипте не смогу, но у меня возник вопрос: а нельзя ли как-нибудь пересчет делать не через каждые пол секунды а по событиям (onMouseOut, onMouseOver, onkeyup) т.е. повесить слушателя на эти события, мне кажется это меньше будет грузить браузер

    ОТВЕТИТЬ ↓
    • Можно, изначально так и было на onkeyup повешено это грузит браузер чувствительно - жмешь любую кнопку и идет пересчет, если быстро пишешь тогда начинаются глюки...

      На onMouseOut, onMouseOver нелогично как-то совсем уж. Ну, навел мышку скрипт один раз пересчитал поле и все и пишешь коммент уже без растягивания...

      ОТВЕТИТЬ ↓
  • в любом случае спс , применил скрипт в работе,

    порыскав в инете нашел еще один скриптик:

    <textarea style="width:600px; font-size:14px; height:100px;"
    onkeyup="this.style.height=(a=(e=parseInt(this.style.fontSize)*(this.value.split('\n').length+2))
    >(e2=700)?e2:e)<100?100:a;"></textarea>
    

    который мне понравился тем что он ну уж очень маленький небольшой скролл не мешает, работает от события onkeyup, был баг на копирование туда текста при помощи клика мыши, легко его устранил добавив событие onMouseOut. Проблема в том что он не работает в IE и в GoogleChrome. Может кто знает как решить эту проблемку?

    ОТВЕТИТЬ ↓
    • Интересный пример, я его вроде тоже пробовал, когда этот скрипт делал.

      Точно не помню сейчас, но вроде style.height в разных браузерах понимается по-разному, поэтому опираясь на это число невозможно сделать такой скрипт кроссбраузерным.

      У меня в последнем IE и в GoogleChrome 8+, все работает.

      ОТВЕТИТЬ ↓
  • лан, тогда кидаю ссылку на сайтик с ним:

    http://web-master.tom.ru/view_articles.php?id=29

    ОТВЕТИТЬ ↓
  • Во всех вышеуказанных скриптах когда вставляешь большой текст из буфера textarea не растягивается. sad

    ОТВЕТИТЬ ↓
    • Дополнил статью вариантом на jQuery, который подключил к этому блогу. Все работает на ура!

      ОТВЕТИТЬ ↓
  • Точно.

    ОТВЕТИТЬ ↓
    • Точно, да не точно. Пришлось отказаться от варианта на jQuery. Превью в комментариях отказывалось работать.

      Посидел пару часиков изменил свой старый скрипт, причем кардинально поменял функцию подсчета строк. Теперь работает как нужно и кроссбраузерно!

      П.С. Обновил пост, думаю теперь он точно заслуживает внимания smile

      ОТВЕТИТЬ ↓
      • А говоришь javascript плохо знаешь. wink

        ОТВЕТИТЬ ↓
        • Так я его плохо знаю. Пока сделал замучился. Там даже не столько javascript сколько идея как реализовать, впрочем, так везде: язык - лишь средство. *crazy*

          ОТВЕТИТЬ ↓
  • сРипт не создает практически...

    ОТВЕТИТЬ ↓
    • А что это? *pardon*

      ОТВЕТИТЬ ↓
      • Отловился. wink
        Мне показалось, что была опечатка в демке.

        ОТВЕТИТЬ ↓
  • В новой демке в тексте в textarea было написано "Срипт не создает практически..." вместо "Скрипт не создает практически...", но это уже не актуально.

    ОТВЕТИТЬ ↓
  • Развитие скрипта
    * jQuery autoResize (textarea auto-resizer)
    * @copyright James Padolsey http://james.padolsey.com
    * @version 1.04
    https://github.com/padolsey/jQuery.fn.autoResize
    В отличии от упомянутой версии 1.04 как минимум умеет распахивать высоту с учетом ЗАРАНЕЕ введенного содержимого textarea.
    То есть

    <textarea>тут, например из БД, выводится много текста для редактирования и этот текст будет учтен в высоте</textarea>

    .

    ОТВЕТИТЬ ↓
Форма комментирования

¤ Вставляйте код кнопкой: "Код" (php, js, html, css, sql);
¤ Выделяйте HTML код кнопкой: "Выделить" (<div>);
¤ Перед отправкой комментария используйте "Превью";
¤ Не пишите спам/бред — бесполезно!

Подписаться на комментарии без комментирования:

X

Забыли пароль?