js获取可视区大小和页面大小的兼容性写法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js获取可视区大小和页面大小的兼容性写法相关的知识,希望对你有一定的参考价值。

var getPageSize = function() {
    var scrW, scrH;
    if(window.innerHeight && window.scrollMaxY) {
        // Mozilla
        scrW = window.innerWidth + window.scrollMaxX;
        scrH = window.innerHeight + window.scrollMaxY;
    }else if(document.body.scrollHeight > document.body.offsetHeight){
        // all but IE Mac
        scrW = document.body.scrollWidth;
        scrH = document.body.scrollHeight;
    }else if(document.body) { // IE Mac
        scrW = document.body.offsetWidth;
        scrH = document.body.offsetHeight;
    }

    var winW, winH;
    if(window.innerHeight) { // all except IE
        winW = window.innerWidth;
        winH = window.innerHeight;
    }else if (document.documentElement && document.documentElement.clientHeight || document.documentElement.clientWidth) {
        // IE 6 Strict Mode
        winW = document.documentElement.clientWidth; 
        winH = document.documentElement.clientHeight;
    }else if (document.body) { // other
        winW = document.body.clientWidth;
        winH = document.body.clientHeight;
    }

    // for small pages with total size less then the viewport
    var pageW = (scrW<winW) ? winW : scrW;
    var pageH = (scrH<winH) ? winH : scrH;

    return{PageW:pageW, PageH:pageH, WinW:winW, WinH:winH};
};


//调用:
document.onclick = function(){
    var page = getPageSize();
    console.log(‘页面高度:‘ + size.PageH + ‘,可视区高度:‘ + size.WinH);
}

 

以上是关于js获取可视区大小和页面大小的兼容性写法的主要内容,如果未能解决你的问题,请参考以下文章

uniapp中不同设备获取可视区的兼容方法

scrollWidth、clientWidth、offsetWidth、width的区别

浏览器可视区大小简说(clientWidth,innerWidth)

关于取可视区到页面顶部距离(scrollTop)各浏览器不同的方法(兼容性)

怎样用js写返回顶部的滑动效果

document.documentElement.clientHeight 和 $(window).height() 无法正确获取页面可视区高度