解決iOS下input和fixed 問題

來源:互聯網
上載者:User

標籤:

在ios下如果頁面底部有fixed 元素當有input輸入框觸發鍵盤時fixed會浮動在頁面出現展示總是

解決方案有很多種,但是要根據實際需要更改

方法一、css解決(弊端:當有大面積input元素時會出現滑動不順暢問題)

//這裡給內容地區設定 position:absolute,並且設定一個距離fixed的底部距離

.main{

position:absolute; 

bottom:rem-calc(80px); //fixed元素的高度

top:0;

left:0;

width:100%;

}

方法二、js解決方案(弊端:每次input焦時間點事件時要執行一次)

.pos-rel {
position: relative;;
}

<script>

$(function() {
var isIOS = (/iphone|ipad/gi).test(navigator.appVersion);//判斷是不是ios系統

if (isIOS) {
$(‘.main’).on(‘focus’, ‘input’, function () {
$(‘.fixed-bottom’).addClass(‘pos-rel’);
}).on(‘focusout’, ‘input’, function () {
$(‘.fixed-bottom’).removeClass(‘pos-rel’);
});
}
});
</script>

當然還有其它的解決方案例如使用iscroll.js剛開始就用的這種解決方式,後來發現在input元素較多或是有click事件頁面引入iscroll.js會遇到各種坑不建議使用,當然也可以把fixed設定成absolute每次頁面滾動變化時重新計算,這種方式也非常的消耗資源

綜合以上還是覺得在帶有input元素的頁面盡量避免fixed元素的使用

解決iOS下input和fixed 問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.