Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Javascript中是否存在滚动条?_Javascript_Css_Width_Scrollbar_Overflow - Fatal编程技术网

检查Javascript中是否存在滚动条?

检查Javascript中是否存在滚动条?,javascript,css,width,scrollbar,overflow,Javascript,Css,Width,Scrollbar,Overflow,为了好玩,我正在开发一个小便笺应用程序,有时会发生这种情况: (这是因为第一个单词比音符的宽度宽。) 有没有办法检查滚动条是否带有Javascript?如果我可以这样做,我可以调整便笺的大小,直到它包含不带滚动条的文本。如果它对于其容器来说太大,此CSS3属性将打断其中的一个单词: #selector { word-wrap: break-word; } 换行:正常切换样式 这基本上适用于所有浏览器,信不信由你,对该属性的支持可以追溯到IE5。这要归功于路易斯·拉扎里斯(Lo

为了好玩,我正在开发一个小便笺应用程序,有时会发生这种情况:

(这是因为第一个单词比音符的宽度宽。)


有没有办法检查滚动条是否带有Javascript?如果我可以这样做,我可以调整便笺的大小,直到它包含不带滚动条的文本。

如果它对于其容器来说太大,此CSS3属性将打断其中的一个单词:

#selector {  
    word-wrap: break-word;  
}
换行:正常切换样式


这基本上适用于所有浏览器,信不信由你,对该属性的支持可以追溯到IE5。这要归功于路易斯·拉扎里斯(Louis Lazaris)的博文。

这里有一种方法可以实现OP的要求,如果有滚动条,可以扩大div,直到没有滚动条为止:

var autoWiden = function ( elem ) {
    var checkForScroll = function() {
            var tsl;

            elem.scrollLeft += 10; // try to scroll
            tsl = elem.scrollLeft; // will be 0 if no scroll bar
            elem.scrollLeft = 0;   // reset scroll

            return tsl;
        };

    while (checkForScroll() > 0) {
        elem.style.width = (elem.offsetWidth + 10) + 'px';
    }
};

在类似情况下,我所做的是将文本附加到一个隐藏可见性的临时元素,测量它,如果太大,则采取措施解决它(这可能包括手动包装文本插入BRs,或只是扩大最终放置文本的最终元素)。这比使用换行字提供了更多的控制:断开单词

为了获得最佳的跨浏览器支持,我建议使用文字换行方法,并为元素指定一个设置宽度(100%或一些像素宽度),这样它就不会变宽。这应该是最好的解决方案


您还可以设置溢出-x:隐藏;只需隐藏滚动条,但它在IE7/8中不起作用,还会导致溢出的文本不显示而不是包装,这可能不是您想要的。

Kerbrummo,问题已解决。谢谢你跳出框框思考。也很酷,谢谢。我也没见过
while()
这个成语,非常有用。