jQuery / JS get the scrollbar height of an textarea

妖精的绣舞 提交于 2019-11-28 07:13:24

问题


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.


回答1:


textarea.scrollHeight

returns an integer (pixels)




回答2:


$.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);
    }
});



回答3:


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);
}


来源:https://stackoverflow.com/questions/5980150/jquery-js-get-the-scrollbar-height-of-an-textarea

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!