class devicePixelRatio {
    constructor() {
        // this.flag = false
    }

    //获取系统类型
    getSystem() { 
        let flag = false
        var agent = navigator.userAgent.toLowerCase();
        //针对windows处理
        if (agent.indexOf('windows') >= 0) { 
            return true
        }
    }

    //监听方法兼容写法
    addHandler(element, type, handler) { 
        if (element.addEventListener) {
            element.addEventListener(type, handler, false)
        } else if (element.attachEvent) {
            element.attachEvent("on" + type, handler)
        } else {
            element["on" + type] = handler
        }
    }

    // 校正浏览器缩放比例
    correct() { 
        //页面devicePixelRatio(设备像素比例)变化后，计算页面body标签zoom修改其大小，来抵消页面devicePixelRatio带来的变化
        document.getElementsByTagName('body')[0].style.zoom = 1 / window.devicePixelRatio;
        console.log('bodyzoom==>',document.getElementsByTagName('body')[0].style.zoom)
        console.log('devicePixelRatio==>',window.devicePixelRatio)
        // document.getElementsByTagName('body')[0].style.zoom = 1
    }

    //监听页面缩放
    watch() { 
        this.addHandler(window, 'resize', function () { //注意这个方法是解决全局有两个window.resize
            //重新校正
            this.correct()
        })
    }

    //初始化页面比例
    init() { 
        if (this.getSystem()) { //判断设备，目前只在window系统下校正浏览器缩放比例
            //初始化页面校正浏览器缩放比例
            this.correct()
            // 开启监听页面缩放
            this.watch()
        }
    }
}

export default devicePixelRatio;