很多出插件在容器不可见时,获取不到宽高,导致异常,---------多件于多个选项卡存在的情况

如何是好 ============>监测 属性变化  就像  onchange 哪样  ========>但是

由于各个浏览器之间对 onproperchange 类型的函数,完善的不理想 ,所以真心没什么办法,Ie的确有这方面的函数

onproperchange  

但是我用的就是 chrome 和 firefox    只能自己想办法: 想了一个比较low的办法:

  var interval=[];
    function visibleSetCenter() {
        console.log(new Date().getSeconds())
        if ($("body").is(':visible') == true) {
            console.log('show');
            SetMapCenter()
            if (interval.length) {
                for (var i in interval) {
                    window.clearInterval(interval[i]);
                }
                interval = [];
            }
        }
        else {
            if (!interval.length) {
                interval.push(window.setInterval(visibleSetCenter, 1000))
            }
        }
    }

    function SetMapCenter(){
        var point = new BMap.Point(maplng, maplat); // 创建点坐标
        map.centerAndZoom(point, mapzoom); // 初始化地图,设置中心点坐标和缩放级别
    }

在加载完成后运行一次 visibleSetCenter 函数 (当前页面很可能存在于,第n个选项卡中,打开后处于不可见状态)

如果可见那就一切安好,   要是不可见 ==>那就是开启定时器直到页面可见或者被销毁为止,那么现在只要进入这个页面,就会重新定位到目标点位置

完成
 

 

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐