解決移動端IME擋住輸入框的辦法

來源:互聯網
上載者:User

標籤:div   webview控制項   view   content   head   lock   cti   eve   log   

      做過hybrid app的朋友都會使用這樣過這樣的開發模式,app是原生的,裡面的內容是移動web。以安卓為例,安卓app裡面內容會使用一個webview控制項來載入移動web,webview控制項設定了全屏。那麼問題來了,假如是一個表單頁面,裡面有很多的輸入框,點擊最頂部的輸入框的時候,移動端的IME就會擋住最底部的輸入框,無法看到輸入框裡面的內容。

      如何解決,請看一下代碼:

<!DOCTYPE html><html>    <head>        <meta charset="utf-8" />        <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">        <title>移動端IME擋住輸入框</title>        <style>            input {                width: 100%;                line-height: 1.5rem;                border: 1px solid red;            }                        .block-fill {                height: 500px;            }        </style>    </head>    <body>        <div id="main">            <!--佔位div-->            <div class="block-fill"></div>            <!--需要聚焦-->            <input id="input" type="text"></input>        </div>    </body>    <script>        //擷取頁面高度        var clientHeight = document.body.clientHeight;        //設定監聽聚焦事件        document.body.addEventListener("focus", function(e) {            var focusElem = document.getElementById(‘input‘)        }, true);        //設定監聽視窗變化時間        window.addEventListener("resize", function() {            if(focusElem && document.body.clientHeight < clientHeight) {                //使用scrollIntoView方法來控制輸入框                focusElem.scrollIntoView(false);            }        });    </script></html>

         通過js就很輕鬆的解決這個問題。(我開始以為需要app那邊去設定)

 

解決移動端IME擋住輸入框的辦法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.