javascriptのフレームワークであるprototype.jsでhtml入力欄であるtextareaをリサイズ(サイズ変更できる)ようにするための方法だそうです。普段使いませんが文章のような入力が多いものに関しては使えそうなので、( ..)φメモメモメモ。
以下のコードを使うそうです。内容を見るとhtmlのrowsとcolsを計算して入力があった場合はサイズを自動的に調整するものっぽい。
var ResizingTextArea = Class.create(); ResizingTextArea.prototype = { defaultRows: 1, initialize: function(field) { this.defaultRows = Math.max(field.rows, 1); this.resizeNeeded = this.resizeNeeded.bindAsEventListener(this); Event.observe(field, "click", this.resizeNeeded); Event.observe(field, "keyup", this.resizeNeeded); }, resizeNeeded: function(event) { var t = Event.element(event); var lines = t.value.split('\n'); var newRows = lines.length + 1; var oldRows = t.rows; for (var i = 0; i <lines.length; i++) { var line = lines[i]; if (line.length>= t.cols) newRows += Math.floor(line.length / t.cols); } if (newRows> t.rows) t.rows = newRows; if (newRows } }
んで、実際使う時はこんな感じ(↓)?
<textarea name="textarea" onload="new ResizingTextArea(this);"></textarea>
さて、関係ないですが先日エントリーしたjQueryがやっぱり面白そう。mootoolsと併せてこっちも追っていきたいなぁ。と思った次第(本当に関係ないな。スンマヘン)。
なにかと話題(?)のYahoo! User Interface Libraryですが、0.11にバージョンが上がったようです。
今回の目玉はデバッグ用のログ表示機能が付いた事。上の画像の右側に付いてるのがその表示部分。こういうのがライブラリに付いてるのは珍しいのでは?なかなか使いやすそうです。う~んここまで出てくると使ってみたくなるなぁ。重たくならないかなぁ?