zoukankan      html  css  js  c++  java
  • :input获得焦点时被弹出键盘挡住解决办法

    这个是移动端非常常见的bug了,这里说下综合的解决办法,因为有时候你的办法就是会失效。。

    上代码

    /*input框调起输入法盖住输入问题*/
    $('input[type="text"]').on('click', function () {
      var target = this;
      var t = navigator.userAgent;
      if (t.indexOf("Android") > -1 || t.indexOf("Adr") > -1) {
        var e = $(this).offset().top - 30;
        $(window).scrollTop(e);
      };
      setTimeout(function(){
        target.scrollIntoViewIfNeeded();
      },400);
    });

    注意点1:使用scrollTop时。要注意首页页面要设置高度 height:100% ,其次页面的overflow:hidden,display:none;也会影响

    注意点2:scrollIntoView(alignWithTop): 滚动浏览器窗口或容器元素,以便在当前视窗的可见范围看见当前元素。

    alignWithTop 若为 true,或者什么都不传,那么窗口滚动之后会让调用元素的顶部与视口顶部尽可能平齐;
    alignWithTop 若为 false,调用元素会尽可能全部出现在视口中,可能的话,调用元素的底部会与视口顶部平齐,不过顶部不一定平齐。
    支持的浏览器:IE、Chrome、Firefox、Safari和Opera。
    该方法是唯一一个所有浏览器都支持的方法,类似还有如下方法,但是只有在Chrome和Safari有效:
    scrollIntoViewIfNeeded(alignCenter)
    scrollByLines(LineCount)
    注意点3 如果是在弹层里出现此问题,那么则直接改变定位高度即可。
    希望能帮助到大家。
  • 相关阅读:
    C/C++网络编程2——socket函数
    C/C++网络编程1——linux下实现
    nginx_2_nginx进程模型
    nginx_1_初始nginx
    C++11并发编程4------线程间共享数据
    C++11并发编程3------线程传参
    C++11并发编程2------线程管理
    C++11并发编程1------并发介绍
    打造自己的开发环境
    gcc/g++/make/cmake/makefile/cmakelists的恩恩怨怨
  • 原文地址:https://www.cnblogs.com/xuniannian/p/9719666.html
Copyright © 2011-2022 走看看