为什么在手机上document.documentElement.clientWidth是980?


document.documentElement.clientWidth这个值在电脑和ipad上就是分辨率的宽度,但是在手机上却恒定是980,为什么呢?测试代码如下:


 <html>
    <head>
     <script src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
    <script type="text/javascript">
        (function loop(){
            requestAnimationFrame(function(){
                $('#doc').html( document.documentElement.clientWidth );
                $('#win').html( window.innerWidth );
                loop();
            })
        })();
    </script>
    </head>
    <body>
        <div id="w" style="border:solid 5px black;width:1200px;margin-top:50px;margin-left:50px;font-size:50px">
            <div style="float:left">client:<span id="doc"></span></div>
            <div style="clear:both"></div>
            <div style="float:left">window:<span id="win"></span></div>

        </div>
    </body>
</html>

mobile

麻宫雅典娜 10 years, 3 months ago

最主要是你在 <head> 里面添加下面代码,具体什么意思你自己搜去。


 html


 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">

添加了上面这个标签,你再获取就是手机的分辨率宽度了。

网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度: window.screen.availWidth;

上帝总在微笑 answered 10 years, 3 months ago

nosub answered 10 years, 3 months ago

Your Answer