textarea按照普通元素設置height是沒有做用的,能夠這麼來設置,javascript
下面給上一段項目代碼css
JS代碼:java
$.fn.extend({ txtaAutoHeight: function () { return this.each(function () { var $this = $(this); if (!$this.attr('initAttrH')) { $this.attr('initAttrH', $this.outerHeight()); } setAutoHeight(this).on('input', function () { setAutoHeight(this); }); }); function setAutoHeight(elem) { var $obj = $(elem); //讓textArea自動調節高度,使其不出現滾動條 // return $obj.css({ height: $obj.attr('initAttrH'), 'overflow-y': 'hidden' }).height(elem.scrollHeight); //讓textArea自動適應父元素的高度 var $parentDom = $obj.parent(); return $obj.css({ height: $obj.attr('initAttrH'), 'overflow-y': 'hidden' }).height($parentDom.height()); } } }); /** * 動態textArea祖先元素節點的高度,myCener是整個頁面高度,otherDiv是textArea的祖先元素之外的其餘高度, * 利用(總高度-其餘元素高度),來設置textArea祖先元素的高度 * @returns */ function setAutoTextAreaHeightFun(){ var totalHeight = $('#myCener').height(); var height1 = 0; if(!$('#otherDiv').is(":hidden")){ height1 = $('#otherDiv').height(); } var textAreaHeight = totalHeight - height1; $('.textAreaParent').height(textAreaHeight-8); }