2011-07-05 5 views
4

안녕하세요.이 자동 확장 텍스트 영역 jquery 코드가 있으며 현재 Google 크롬을 제외하고 어떻게 든 작동합니다.textarea auto expand

문제는 내가 텍스트 상자에 3px 스타일을 추가했을 때 상자에 내용을 입력 할 때마다 높이가 확장된다는 것입니다. 스타일 패딩을 제거하면 멋지게 작동합니다.

테스트

은 여기에 있습니다 : 나는 누군가가 여기에 도움이 되거 수 있다면 감사하겠습니다, 이유를 알아 내기 위해 노력 해왔다

http://jsfiddle.net/JkxgB/ (테스트하는 데 사용할 구글 크롬). 고맙습니다.

+0

왜 가치 가치를 사용하고 있습니까? 대신에 줄을 세어 봐야하지 않니? – Christian

+0

확실하지 않지만, 이것은 어딘가에있는 플러그인입니다. – pakito

+0

직접 관련 없음 : 무기한 확장 중입니다. 이것은 약간의 성가심을 일으킬 수 있습니다. 특정 지점까지만 확장 한 다음 스크롤 막대를 추가하는 것이 좋습니다. – Nivas

답변

2

내가 대신이 플러그인을 사용하는 것이 좋습니다 :

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

에 StackOverflow가 텍스트 영역이 플러그인을 사용! 더 말할 필요가 있니?

희망이 도움이됩니다. 건배

PS : 또는, 당신은 당신이 4 년 전에 물어 난 그냥 그것을보고하는 autogrow plugin

+0

에드거에 대한 의견 감사합니다. 우선 stackovflw resizer가 자동 확장과 같은 것을 필요로했습니다. 대부분의 최신 브라우저에서 resizer가 자동으로 textarea를 지원하므로 플러그인이 다소 중복됩니다. 두 번째로 많은 플러그인을 보았습니다. 대다수는 텍스트의 맨 아래에 여분의 간격을두고 있습니다. 당신이 입력합니다. 제가 게시 한 플러그인은 제 경우에 가장 적합합니다. – pakito

0

너무 슬퍼을 사용할 수 있습니다.

scrollHeight 속성이 요소의 전체 높이를 픽셀 단위로 반환하기 때문에 문제가 발생합니다. 안쪽 여백은 포함되지만 테두리, 스크롤 막대 또는 여백은 포함되지 않습니다. (적어도 Chrome, IE 및 Firefox에서는이 세 가지를 테스트했습니다.)

심판 :

Element Scroll Height 그래서 나는 아래로 Jsfiddle에 line 17을 변경하고, 문제가 해결.

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