2011-07-05 7 views
4

こんにちは私はこの自動拡張テキストエリアjqueryコードを持っていますが、現在のところ、Google Chromeを除いて何とかそこで動作しています。textarea auto expand

問題は、スタイルパディングを追加したときです.3pxをテキストエリアに追加すると、ボックスに何か入力すると高さが拡大されます。スタイルパッディングを削除すると、うまく動作します。

テストはここにある:http://jsfiddle.net/JkxgB/(テストするためにGoogle Chromeを使用してください)

私は理由を理解しようとしている誰もが、ここでいくつかの光を当てることができれば、幸いです。ありがとうございました。

+0

なぜ値の長さを使用していますか?あなたは代わりに線を数えてはいけませんか? – Christian

+0

しかし、これはどこかにあるプラグインです。 – pakito

+0

直接関連していません:無期限に拡張しています。これはいくつかの迷惑をかけることがあります。特定のポイントまでしか展開しないようにして、スクロールバーを追加することをお勧めします。 – Nivas

答えて

2

私はあなたの代わりにこのプラグインを使用することをお勧め:

http://plugins.jquery.com/project/TextAreaResizer

StackOverflowのは、そのテキストエリアのためにこのプラグインを使用しています!もっと言わなければならないのですか?

これが役に立ちます。乾杯は

PS:または、あなたは4年前に尋ねた、私はちょうどそれを見たように、悲しいautogrow plugin

+0

私はautoを展開するようなものが必要でしたので、stackovflw resizerは私のものではありません 2番目に、私は多くのプラグインを見て、試してみました。多くの場合、それらの多くは通常、テキストの下部に余分なスペースを残しています。私が投稿したプラグインは、私の場合には最高です。 – pakito

0

を使用することができます。

scrollHeightプロパティが要素の高さ全体をピクセル単位で返すため、問題が発生します。ボーダー、スクロールバー、またはマージンは含まれません。 (少なくともChrome、IE、Firefoxでは、これらの3つはテスト済みです)。

参考:Element Scroll Height

だから私は以下のようにあなたのJsfiddleでline 17を変更し、問題が解決しました。

var h = Math.max(e.expandMin, Math.min(e.scrollHeight - 6, e.expandMax));