Javascript检测textarea中的滚动条

Jam*_*mie 16 javascript mootools textarea scrollbar

我想知道是否有人知道如何检测滚动条何时出现在内部textarea.

我目前正在为我的JavaScript使用mootools,我在检测滚动条时遇到问题.

Tom*_*ffi 33

function has_scrollbar(elem_id)
{
    const elem = document.getElementById(elem_id);
    if (elem.clientHeight < elem.scrollHeight)
        alert("The element has a vertical scrollbar!");
    else
        alert("The element doesn't have a vertical scrollbar.");
}
Run Code Online (Sandbox Code Playgroud)

看到这个jsFiddle http://jsfiddle.net/qKNXH/


Cap*_*tis 5

即使在文本区域中,托马索的解决方案也能完美运行。但是,如果用户要在文本区域中键入内容,并且突然文本区域给自己一个滚动条,您的 JavaScript 将不会知道或被触发。因此您可能需要添加类似的内容

 onKeyUp='has_scrollbar("textareaID")'
Run Code Online (Sandbox Code Playgroud)


pow*_*tac 5

我制作了一个 jQuery“兼容”版本的Tommaso Taruffis代码

function resize_until_scrollbar_is_gone(selector) { 
    $.each($(selector), function(i, elem) {
        while (elem.clientHeight < elem.scrollHeight) {
            $(elem).height($(elem).height()+5);
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

它可以处理多个元素并接受:选择器、jQuery 对象或 DOM 元素。

可以这样调用:

resize_until_scrollbar_is_gone('textarea');
Run Code Online (Sandbox Code Playgroud)