手机输入法遮挡输入框解决方法

一、参考资料 RunJs:http://runjs.cn/code/pigebxdj

二、HTML

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>keyboard</title>
  6.     <meta name="viewport"
  7.           content="width=device-width,initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no"/>
  8.     <meta name="apple-mobile-web-app-capable" content="yes"/>
  9.     <meta name="full-screen" content="true"/>
  10.     <meta name="screen-orientation" content="portrait"/>
  11.     <meta name="x5-fullscreen" content="true"/>
  12.     <meta name="360-fullscreen" content="true"/>
  13.     <title>Title</title>
  14. </head>
  15. <body class="bodyer">
  16. <div class="block"></div>
  17. <div class="auto1">
  18.     <input class="auto-keyboard" placeholder="keyboard 1"/>
  19. </div>
  20. <div class="auto2">
  21.     <input id="mcode" class="auto-keyboard" placeholder="keyboard 2"/>
  22. </div>
  23. </body>
  24. </html>

三、CSS

  1. .bodyer {
  2.     positionrelative;//关键
  3.     padding: 0rem;
  4.     margin: 0rem;
  5.     background-color#888888;
  6.     transition: top 1s;
  7.     -moz-transition: top 1s;
  8.     -webkit-transition: top 1s;
  9.     -o-transition: top 1s;
  10. }
  11. .block {
  12.     height: 80vh;
  13.     background-color#005000;
  14. }
  15. .auto1 {
  16.     width: 75%;
  17.     height: 10rem;
  18.     line-height: 10rem;
  19.     margin: 0 auto;
  20.     background-color#0B2E45
  21. }
  22. .auto2 {
  23.     width: 75%;
  24.     height: 10rem;
  25.     line-height: 10rem;
  26.     margin: 0 auto;
  27.     background-color#1d1d39
  28. }
  29. .auto-keyboard {
  30.     width: 100%;
  31.     outlinenone;
  32.     font-size: 1.5rem;
  33.     height: 2rem;
  34.     bordernone;
  35. }

四、JS

  1. /*
  2. 1、通过对相对依赖定位的body进行top偏移。
  3.     其中_target.clientHeight可以替换为个人认为合适的值。
  4.     当然可以编码页面期定义为元素的属性,通过值获取来记性个人化偏移
  5. 2、但让也可以单独定位特定元素,监听获得焦点和失去焦点事件
  6. */
  7. var _body = document.querySelector("body");
  8. window.addEventListener("focusin"function () {
  9.     var event = event || window.event;
  10.     var _target = event.target;
  11.     _body.style.top = (-_target.offsetTop + _body.scrollTop + _target.clientHeight) + "px";
  12. });
  13. window.addEventListener("focusout"function () {
  14.     _body.style.top = "0px"
  15. });

若要改为点击某个输入框,页面上移的效果,则

  1. var mcode = document.getElementById('mcode');
  2. var _body = document.querySelector("body");
  3. mcode.addEventListener("focusin"function () {
  4.     var event = event || window.event;
  5.     var _target = event.target;
  6.     _body.style.top = (-_target.offsetTop + _body.scrollTop + _target.clientHeight) + "px";
  7. });
  8. mcode.addEventListener("focusout"function () {
  9.     _body.style.top = "0px"
  10. });

猜你喜欢

转载自blog.csdn.net/qq_42354773/article/details/80926395