婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > html5實現(xiàn)輸入框fixed定位在屏幕最底部兼容性

html5實現(xiàn)輸入框fixed定位在屏幕最底部兼容性

熱門標(biāo)簽:電話機器人黑斑馬免費 高德地圖標(biāo)注地點糾錯 拓展地圖標(biāo)注 機器人外呼系統(tǒng)存在哪些能力 如何獲取地圖標(biāo)注客戶 南昌仁和怎么申請開通400電話 只辦理400電話 平?jīng)龅貓D標(biāo)注位置怎么弄 電話機器人電銷系統(tǒng)掙話費

1、問題由來

做h5 已經(jīng)有很長一段時間了,現(xiàn)在做的工作h5比pc上的更多,曾經(jīng)解決pc端IE各個版本的兼容性也是傷透腦筋,原以為h5的會更好,殊不知,還有更頭疼的問題,當(dāng)設(shè)計師要設(shè)計一個聊天窗口,把輸入框定位在最底部,這是再常見不過的問題了吧,舉例:

上圖就是我最近做的一個功能,原以為是很簡單的一個定位功能,但是沒想到牛逼的測試居然用各種iphone,各種安卓,各種瀏覽器(qq瀏覽器、safari、opera等瀏覽器),各種輸入法(系統(tǒng)自帶、搜狗輸入法),測出來一大堆問題,最后經(jīng)過千辛萬苦,終于做到了能大致兼容。

2、初步解決

1)、結(jié)構(gòu)布局于第一次解決

//1部分css
.header {
    width: 100%;
    height: 40px;
}
//2部分
.body {
   width: 100%;
   overflow: auto;
}
//3部分
.footer {
    width: 100%;
    height: 30px;position: fixed; bottom:0;left:0;right:0;
}
 <div class="header" id="header">會話問診</div>
 <div class="body" id="body"></div>
 <div class="footer" id="footer">
      <input type="text" id="input">
 </div>
$('.body').css('height', $(window).height() - 39);
$('#input').on('focus', function () {
   setTimeout(function () {
                 window.scrollTo(0, 1000000);
    }, 200);
 });

這種布局方法就讓中間".body"中的內(nèi)容在".body"中滾動,對整個html中的body產(chǎn)生了1px的滾動,此處滾動的目的是為了執(zhí)行"window.scrollTo(0, 1000000);",經(jīng)過測試,若body沒有產(chǎn)生滾動,則這個方法是不會執(zhí)行的。 

相信很多人都會以 以上的方法解決input在彈出鍵盤時候的問題,當(dāng)鍵盤彈出來后,就讓滾動條一直往下面滾直到滾動到最下面,沒錯,這種措施之后能保證大部分的正常,但是在safari瀏覽器中就出現(xiàn)了問題,由于safari瀏覽器下部有一塊

圖中是safari瀏覽器自帶的一塊標(biāo)簽,當(dāng)使用以上滾動時,你會發(fā)現(xiàn),他雖然是滾動上去了,但是也會出現(xiàn)一塊空白,沒錯,相當(dāng)于給你的感覺是滾動上去過多,那么此時,也會被測試打回,是不是感覺很傷心無助,(safari瀏覽器把下面那塊當(dāng)作了body的東西,他自己實現(xiàn)了一塊,把我們的html內(nèi)容裝在了他自己實現(xiàn)的容器里面)

2)、進一步解決

經(jīng)過大量的比較與測試,我發(fā)現(xiàn)了一個問題,safari下面的自帶輸入法根本不用處理,鍵盤依然可以正常彈出與收起。(ps:safari瀏覽器沒有特別的判斷,因此此處判斷過于復(fù)雜,如有更好的判斷,請留言,謝謝!此處之所以判斷safari瀏覽器并不是判斷QQ瀏覽器,是因為測試了opera瀏覽器的展示等跟QQ瀏覽器一樣,因此此處就判斷safari瀏覽器)

 $('input').on('focus', function () {  var agent = navigator.userAgent.toLowerCase();
    setTimeout(function () {
                  if (agent.indexOf('safari') != -1 && agent.indexOf('mqqbrowser') == -1
                      && agent.indexOf('coast') == -1 && agent.indexOf('android') == -1
                      && agent.indexOf('linux') == -1 && agent.indexOf('firefox') == -1) 
                         {
			 //safari瀏覽器
                          } else {//其他瀏覽器
                               window.scrollTo(0, 1000000);
                  }
             }, 200);
 });

3)、再次優(yōu)化與解決

經(jīng)過以上幾步驟,原以為完美無缺的解決方案,可以達到很好的兼容了,可是意外又發(fā)生了,測試們用了搜狗輸入法來做測試,問題又來了,蘋果手機自帶的輸入法的實現(xiàn)是把body擠上去,搜狗則是在得到focus之后,直接彈出的一塊遮罩層,這就導(dǎo)致了問題,此時我們的輸入框被擋在了輸入法之后,因此又增加了下面的判斷與處理,

$('input').on('focus', function () {
setTimeout(function () {
                if (agent.indexOf('safari') != -1 && agent.indexOf('mqqbrowser') == -1
                    && agent.indexOf('coast') == -1 && agent.indexOf('android') == -1
                    && agent.indexOf('linux') == -1 && agent.indexOf('firefox') == -1) {//safari瀏覽器
                    if(scope.$txtWrap.offset().top-winobj.scrollTop() > document.body.offsetHeight/2) { //說明軟鍵盤遮蓋頁面
                        window.scrollTo(0, winobj.height() - 270);
                    }
                } else {//其他瀏覽器
                    window.scrollTo(0, 1000000);
                }
            }, 200);
});

3、解決

經(jīng)過幾次測試,看似幾乎沒問題,最后又在iphone5上面的QQ瀏覽器中用搜狗輸入法又測試出了問題,它在第一次點擊當(dāng)input獲取到第一次focus事件的時候,window執(zhí)行了scrollTo方法,第二次,他不再執(zhí)行,不難發(fā)現(xiàn),系統(tǒng)是以為已經(jīng)滾動到了下方,因此便不再執(zhí)行,那么我又增加了一個事件

$('input').on('blur', function () {
  window.scrollTo(0, 0);
});

終于大功告成,基本上解決了現(xiàn)在普遍瀏覽器中大部分搜狗和自帶輸入法對模擬fix的input定位問題。

總結(jié)最后解決js為:

$('input').on('focus', function () {
    var agent = navigator.userAgent.toLowerCase();
  setTimeout(function () {
                if (agent.indexOf('safari') != -1 && agent.indexOf('mqqbrowser') == -1
                    && agent.indexOf('coast') == -1 && agent.indexOf('android') == -1
                    && agent.indexOf('linux') == -1 && agent.indexOf('firefox') == -1) {//safari瀏覽器
                    if(scope.$txtWrap.offset().top-winobj.scrollTop() > document.body.offsetHeight/2) { //說明軟鍵盤遮蓋頁面
                        window.scrollTo(0, winobj.height() - 270);
                    }
                } else {//其他瀏覽器
                    window.scrollTo(0, 1000000);
                }
            }, 200);
});

$('input').on('blur', function () {
    var agent = navigator.userAgent.toLowerCase();
     setTimeout(function () {
                if (!(agent.indexOf('safari') != -1 && agent.indexOf('mqqbrowser') == -1
                    && agent.indexOf('coast') == -1 && agent.indexOf('android') == -1
                    && agent.indexOf('linux') == -1 && agent.indexOf('firefox') == -1)) {//非safari瀏覽器
                        window.scrollTo(0, 0);
                }
            }, 0);
});

重中之重,一定要讓body產(chǎn)生滾動,不然以上方法依然無法解決。

最近同事又測出了我的方案對某些手機的不兼容性,所以他給出了另一個解決方案,經(jīng)測試已經(jīng)達到了幾乎所有手機的兼容,下面提供給大家:

inputFocus: function (e) {
            var winobj = $(window),
                scope = this,
                agent = navigator.userAgent.toLowerCase();
            setTimeout(function () {
                if (agent.indexOf('safari') != -1 && agent.indexOf('mqqbrowser') == -1
                    && agent.indexOf('coast') == -1 && agent.indexOf('android') == -1
                    && agent.indexOf('linux') == -1 && agent.indexOf('firefox') == -1) {//safra瀏覽器
                    window.scrollTo(0, 1000000);//先滾動到最底部,再用scrollY得到當(dāng)前的值,必須延遲 否則拿到的就是1000000
                    setTimeout(function(){
                        window.scrollTo(0, window.scrollY - 45);//45像素 所有瀏覽器都是這么高
                    }, 50)
                } else {//其他瀏覽器
                    window.scrollTo(0, 1000000);
                    // window.scrollTo(0, ++this.scrollNum);
                }
            }, 200);
        },

這是我解決這個問題的過程與實踐,

到此這篇關(guān)于html5實現(xiàn)輸入框fixed定位在屏幕最底部兼容性的文章就介紹到這了,更多相關(guān)html5輸入框fixed定位兼容性內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持腳本之家!

標(biāo)簽:漯河 池州 遼源 青島 西藏 永州 棗莊 新疆

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《html5實現(xiàn)輸入框fixed定位在屏幕最底部兼容性》,本文關(guān)鍵詞  html5,實現(xiàn),輸入,框,fixed,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《html5實現(xiàn)輸入框fixed定位在屏幕最底部兼容性》相關(guān)的同類信息!
  • 本頁收集關(guān)于html5實現(xiàn)輸入框fixed定位在屏幕最底部兼容性的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲欧美日韩在线| 日韩视频免费观看高清在线视频| 欧美一区二区三级| 夜色激情一区二区| 91丨九色丨黑人外教| 日本一区二区免费在线| 高清shemale亚洲人妖| 欧美高清在线一区| 91国偷自产一区二区三区成为亚洲经典| 国产精品久久国产精麻豆99网站| 国产尤物一区二区| 国产精品免费视频一区| 欧美写真视频网站| 免费看日韩精品| 精品国产一区二区三区av性色| 免费成人在线网站| 国产亚洲一区二区三区在线观看 | 顶级嫩模精品视频在线看| 久久精品亚洲精品国产欧美kt∨| 成人在线一区二区三区| 一区二区三区四区不卡在线| 欧美一区二区三区日韩| 成人小视频免费在线观看| 亚洲与欧洲av电影| 久久综合丝袜日本网| 91蜜桃在线免费视频| 蜜臀久久99精品久久久久久9| 久久久国产一区二区三区四区小说| 成人午夜视频在线| 亚洲午夜在线视频| 久久五月婷婷丁香社区| 欧美在线综合视频| 国产精品99久久久久久久女警| 亚洲精品成人少妇| 久久久电影一区二区三区| 91福利国产精品| 国产露脸91国语对白| 夜夜夜精品看看| 亚洲国产高清aⅴ视频| 制服丝袜亚洲网站| 一本一道波多野结衣一区二区| 韩国毛片一区二区三区| 亚洲一二三四久久| 国产精品天天看| 欧美成人乱码一区二区三区| 色视频成人在线观看免| 国产成人免费视| 美女网站在线免费欧美精品| 一区二区三区在线观看网站| 中文字幕久久午夜不卡| 亚洲精品一区二区三区精华液 | 欧美视频一区二区三区在线观看| 国产一区二区三区蝌蚪| 日本成人在线网站| 日韩电影在线观看电影| 亚洲成人av中文| 亚洲激情图片小说视频| 亚洲人成人一区二区在线观看| 日本一区二区免费在线观看视频 | 3d动漫精品啪啪1区2区免费 | 国产91精品露脸国语对白| 九九**精品视频免费播放| 午夜视黄欧洲亚洲| 婷婷久久综合九色综合伊人色| 一区二区三区免费观看| 亚洲人精品一区| 亚洲激情第一区| 亚洲九九爱视频| 亚洲综合一二区| 亚洲成人av资源| 日韩高清不卡在线| 日本一区中文字幕| 免费高清在线视频一区·| 美女一区二区在线观看| 免费成人在线播放| 国产精品一区在线观看你懂的| 国产精品996| av激情综合网| 欧美在线不卡一区| 欧美三级三级三级| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩精品福利| 欧美成人精精品一区二区频| 精品久久久久99| 亚洲国产高清aⅴ视频| 亚洲欧美一区二区三区极速播放| 亚洲天堂精品在线观看| 亚洲一区二区三区爽爽爽爽爽| 天天影视色香欲综合网老头| 精品一区二区三区的国产在线播放 | 亚洲黄色录像片| 天天综合天天做天天综合| 精品一区二区影视| 成av人片一区二区| 欧美人成免费网站| 精品福利在线导航| 国产精品久久久久精k8| 亚洲va天堂va国产va久| 精品国产一区二区三区忘忧草| 国产精品久久久久久久久免费桃花| 亚洲日本乱码在线观看| 日本va欧美va精品| 国产精品欧美久久久久一区二区 | 国产欧美精品日韩区二区麻豆天美| 国产精品美女久久久久久| 香蕉加勒比综合久久| 国产99久久久国产精品免费看| 在线观看国产日韩| 国产性天天综合网| 日韩高清中文字幕一区| 成人午夜精品在线| 欧美卡1卡2卡| 国产精品妹子av| 日韩精品亚洲一区| 色综合咪咪久久| 中文字幕巨乱亚洲| 精品一二三四区| 欧美日韩日本视频| 亚洲免费资源在线播放| 国产一区二区三区不卡在线观看 | 五月天亚洲婷婷| 97se狠狠狠综合亚洲狠狠| 日韩精品综合一本久道在线视频| 国产精品二区一区二区aⅴ污介绍| 三级在线观看一区二区| 91丨porny丨蝌蚪视频| 日本一区二区三区免费乱视频| 日本亚洲最大的色成网站www| 色噜噜久久综合| 亚洲国产成人一区二区三区| 美国毛片一区二区| 91精品婷婷国产综合久久 | 亚洲午夜成aⅴ人片| 91亚洲男人天堂| 一区免费观看视频| 成人深夜福利app| 久久在线观看免费| 国内精品久久久久影院色| 91精品国产综合久久福利软件| 亚洲精品高清视频在线观看| 一区二区三区四区蜜桃| jvid福利写真一区二区三区| 亚洲国产高清在线| 成人av在线资源| 中文字幕在线不卡| av在线播放成人| 国产精品网站在线| 99精品久久99久久久久| 国产精品网曝门| av不卡免费电影| 91精品国产欧美日韩| 美女在线一区二区| wwwwww.欧美系列| 国产精品一二二区| 综合av第一页| 欧美三级乱人伦电影| 日韩精品欧美成人高清一区二区| 337p亚洲精品色噜噜狠狠| 久久不见久久见免费视频7| 2020国产精品| 99精品视频免费在线观看| 亚洲成人7777| 久久久久久久久99精品| 成人avav影音| 亚洲成av人**亚洲成av**| 日韩欧美一二三四区| 国产精品资源站在线| 亚洲激情五月婷婷| 日韩欧美色综合| 成人少妇影院yyyy| 亚洲va天堂va国产va久| 国产三级精品三级| 在线观看免费成人| 国产主播一区二区| 亚洲综合一区二区精品导航| 欧美第一区第二区| 99麻豆久久久国产精品免费| 日韩中文欧美在线| 国产精品国产三级国产普通话99| 欧美人牲a欧美精品| 不卡的av网站| 蜜臀av性久久久久av蜜臀妖精| 国产精品久久免费看| 日韩欧美视频一区| 在线看国产日韩| 国产suv精品一区二区三区| 亚洲美女在线一区| 久久久不卡网国产精品二区| 在线观看视频欧美| 丁香婷婷综合激情五月色| 日韩影院免费视频| 亚洲精选免费视频| 中文字幕免费一区| 久久综合一区二区| 日韩一区二区三区av| 97久久精品人人澡人人爽| 国产麻豆午夜三级精品| 美国av一区二区| 免费亚洲电影在线| 麻豆精品视频在线观看免费|