解決安卓手機在input獲取焦點時候固定定位元素被輸入鍵盤給頂到頂部


在做移動端的時候,很多底部固定的導航欄,目的是想讓導航欄一直固定到底部,不隨輸入鍵盤的出現而移動。在蘋果手機上沒事,但在安卓手機上彈出的鍵盤會將按鈕頂起來。事實是這樣的:一個頁面有input的時候,然后聚焦input的時候,輸入鍵盤就出現了,原本固定在底部的導航欄也不是在最底部固定着了,而是在鍵盤上部。最初的解決方法是以為用input聚焦的時候,就把固定導航欄隱藏掉,失去焦點的時候就把固定導航欄顯示。可是事實又告訴我 ,失敗了。有些手機可能行,但是有些手機,鍵盤可以隱藏,但是不可以失去焦點。所以就想到了另一個方法,也就是可行的方法:

鍵盤彈出,改變了窗口的大小;

//大概的HTML代碼
<body>
<section class="section1">
    <form>
        <input type="text" placeholder="請輸入醫生、或者門店關鍵字" class="keyName" id="serachData">
    </form>
    <img src="./images/Search.png" alt="">
</section>

<section class="section3">
    <div class="more">
        <div class="moreBtn">更多</div>
        <div class="myApoint"><a href="我的預約.html">我的預約</a></div>
    </div>
    <div class="loadMore">加載更多</div>
</section>
</body>

 

//jQuery代碼
//讓固定定位始終定在手機的同一個位置
//先定義一個變量,當改變窗口大小的時候用來做判斷
           var flagKey=false;
             $(".keyName").on("focus",function () {
               flagKey=true;
             })
             window.onresize =function(){
             	if(flagKey){
             		$(".more").css("position","initial");
             		flagKey=false;
             	}else{
             		$(".more").css("position","fixed");
             		if(document.activeElement.id =="serachData"){
             			flagKey = true;
             		}
             	}
             };

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM