在IOS11中position:fixed彈出框中的input出現游標錯位的問題

來源:互聯網
上載者:User

標籤:else   document   log   出現   前端   一半   war   int   點擊事件   

問題出現的背景:

在IOS11中position:fixed彈出框中的input出現游標錯位的問題


解決方案

一、設計互動方面最好不要讓彈窗中出現input輸入框;

二、前端處理此相容性的方案思路:

1、判斷手機機型:Android or ios    ios11 or ios其他   

/*ver 是IOS的版本,如果是Android  ver就不是數組*/
var ver = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);if(Array.isArray(ver)){ ver = parseInt(ver[1], 10);}

2、判斷彈出框出現的位置

a、點擊事件後將包含input的彈出框position:fixed改成position:absolute

b、計算彈出框的位置,如果clickbutton在螢幕的一半的上方,讓彈出框保持在螢幕的中上方,如果clickbutton在螢幕的一半的下方,讓彈出框保持在螢幕的中下方

/*
#get_award  是clickbutton
.tan_box 是彈出框
*/
$("#get_award").click(function () {    var top = $(this).position().top;/*點擊按鈕距離螢幕頂部的相對*/    var scrollTop = $(document).scrollTop();/*捲軸的位置*/    var window_height = $(window).height();/*螢幕的可視高度*/    var box_height = $(".tan_box").height();/*彈框的高度*/        top1 = top - scrollTop;    window_height = window_height/2;    if(top1<window_height){        if(top1<box_height/2){            var top2 =top+100+box_height/2        }else{            var top2 = window_height+(top+100)/2+box_height/2        }        $(".tan_box").css("top", top2);    }else{        if(window_height-top1<box_height/2){            var top2 = top-100-box_height/2        }else{            var top2 = (top+100)/2+box_height/2        }        $(".tan_box").css("top", top2);    }})

author by:hgq  tuantuan 

在IOS11中position:fixed彈出框中的input出現游標錯位的問題

相關文章

聯繫我們

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