js 讓textarea的高度自適應父元素的高度

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);
}
相關文章
相關標籤/搜索