小编Wal*_*lid的帖子

测试页面是否有水平滚动条(计算机和移动设备)

在网页上,我需要测试是否存在水平滚动条(以便我以编程方式更改其他元素的css).有没有办法使用jquery(或纯javascript)获取该信息?

我测试过了

function isHorizontalScrollbarEnabled() {
    return $(document).width()!=$(window).width();
}
Run Code Online (Sandbox Code Playgroud)

但它似乎并不适用于所有浏览器(例如我最近测试过的三星手机不起作用).我需要它适用于所有浏览器,包括最近的移动设备.

谢谢!

编辑1

我测试了plalx和laconbass提供的解决方案,测试了IE8,Firefox,Chrome和iPad.适用于IE,Firefox和Chrome,但不能在iPad上使用.

问题似乎与移动设备上的缩放功能有关:即使我在iPad上放大时,会出现水平滚动条document,window并且document.body宽度不会改变(我今天早些时候测试的三星手机的问题也是如此).

这是我用来测试的代码:

<!DOCTYPE html>
<html lang="en">
    <head>
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
      <title>test</title>
    </head>

    <body>
      <div style="width: 500px; background: red;" id="test">click here to test</div>
      <script type="text/javascript">
        var i = 1;
        $("#test").click(function(){
          $(this).html("Test #" + (i++) 
    + "<br>document width=" + $(document).width() + ", windows width=" + $(window).width()
    + "<br>document width=" + $(document).width() + ", body width=" + $(document.body).width()
          );  
        });     
      </script>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何想法如何检测水平滚动条的存在,也可以在像iPad这样的移动设备上放大/缩小后工作?

html javascript jquery cross-browser scrollbar

5
推荐指数
1
解决办法
5599
查看次数

标签 统计

cross-browser ×1

html ×1

javascript ×1

jquery ×1

scrollbar ×1