關於ios的safari下,頁面底部彈出登陸遮罩層,呼出軟鍵盤時 問題解決


前陣子遇到了一個問題,就是手機端頁面彈出遮罩+底部登陸的彈出層。

一般情況下就直接給fixed固定定位了,然而做測試時發現了一個很大的問題 

iOS的safari下,固定定位會跑到整個頁面的最底部,而不是當前頁的最底部。

查了好多百度然而還是沒有找到有用的解決方案,后來問了一位前端的大神,大神說這種情況下,需要區分兩種狀態,

一是默認狀態,即 除了safari之外的其他瀏覽器(需要判斷一下瀏覽器是否為safari)

二是 safari瀏覽器狀態下,(由於公司只要求測UC,QQ瀏覽器,顧,發現  在ios下的QQ瀏覽器里,判斷時也會得出是safari,所以在寫判斷時,注意處理下手機QQ瀏覽器)

先寫判斷瀏覽器的事件:

function myBrowser(){ 
var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串 
var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") < 1 && userAgent.indexOf("MQQ") < 0; //判斷是否Safari 
//alert(userAgent);
if(isSafari){ return "Safari"; }
}

然后在寫具體彈出的事件

//========點擊。。彈出彈出框=================

//========點擊。。彈出彈出框=================
    //index-個人中心       默認安卓
    $(".ic_per").click(function() {
     //safari
if(myBrowser()=="Safari"){ // alert("這是safari"); A.zhezhao(); $('#login_box').fadeIn(500); $("html,body,.mask-layer").height($(window).height()); $(".mask-layer").height($(document).height()); $('.mask-layer').css('position', 'absolute'); var dltop = $(document).scrollTop() + $(window).height() - 275; $("#login_box").height($(document).height()); console.log(dltop); console.log($("#login_box").height()); $('#login_box').css({ "position": "absolute", "top": dltop + "px", "height": $(document).height() }); }
     //其他瀏覽器
else { // alert("這是別的"); A.zhezhao_in(); //彈出框系列 $('#login_box').fadeIn(500); $("body,.mask-layer").height($(window).height()); } });

阿西吧,然而還是有些細節問題跟默認情況下不一樣   還好產品大大沒有再死摳這個問題。。。


免責聲明!

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



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