安卓和ios系统键盘的问题和页面滚动固定

192 阅读1分钟

安卓和ios系统键盘的问题

// 这个用来解决ios和安卓系统键盘的问题
    mounted () {
        //  监控窗口变化事件
        let self = this
        window.onresize = function () {
          return(function(){
            self.screenHeight = document.documentElement.clientHeight
          })();
        }
    },
    watch:{//监听窗口的变化,判断是否需要影藏
      screenHeight(val){
        if(this.originHeigh > val+100){
          this.btmHidden = false
        }else{
          this.btmHidden = true
        }
      },
    }

固定页面,不让滚动的方法

      // 遮罩层下禁止body滚动
   isvisible0(val){
     if(val){
       let scrollTop = document.body.scrollTop || document.documentElement.scrollTop
       document.body.style.cssText += "position:fixed;top:-" + scrollTop + 'px';
     }else{
       let body = document.body;
       body.style.position = "";
       let top = body.style.top;
       document.body.scrollTop = document.documentElement.scrollTop = -parseInt(top);
       body.style.top = "";
     }
   }

页面回跳,go(-1)的区别 在ios和安卓端,用go(-1)做回调是不一样的效果,安卓端的go(-1)是访问上一个地址,而ios的go(-1)是从缓存中取去取出上一个地址缓存的页面,并且不会触发页面的任何钩子函数, 由于不会触发任何钩子函数,在APP软件开发时,容易把上一个页面的导航外壳给带过来,遇到这个问题,可以对回调进行封装,如果是ios系统,回调就是对上一个地址访问,这样就达成了ios和安卓的统一, 当然,也可以在页面打开时构建一个pageshow事件,通过这个事件,来判断页面是否是处在缓存状态还是展示状态,根据这个来达成触发钩子函数的条件。