jQuery / JS get the scrollbar height of an textarea
I've got a textarea with a fixed height. When the user types text into the textarea a scrollbar will show up after the user typed some text in it.
How can I 开发者_运维知识库get the scrollbar height using jQuery or plain JavaScript? I've been searching for this for hours, but couldn't find anything. I can't just insert a div and get the scrollbar height via the div offset because a textarea is not allowed to have child elements.
Please don't give me a link to a jQuery Plug-In that does the job. I want to learn something.
textarea.scrollHeight
returns an integer (pixels)
$.each($("textarea"), function () {
var scrollHeight = parseInt(this.scrollHeight);
if ($("this").val() != "" && isNaN(scrollHeight) == false && scrollHeight > 0 && scrollHeight > $(this).height()) {
console.log($(this).attr("id"));
$(this).height(scrollHeight);
}
});
Please note that you should exclude the upper padding and the lower padding of the textarea while comparing the scrollHeight.
Example
var scrollHeight = $("#textarea_id")[0].scrollHeight;
var padding = 14; //upperpadding 7 and lower padding 7.
if($("#textarea_id")[0].height() < (scrollHeight - padding)) {
$("#textarea_id")[0].height(scrollHeight - padding);
}
精彩评论