鍍金池/ 問答/HTML/ 怎么解決蘋果手機(jī)網(wǎng)頁input輸入框輸入時,input框設(shè)置位置固定但是還是顯示

怎么解決蘋果手機(jī)網(wǎng)頁input輸入框輸入時,input框設(shè)置位置固定但是還是顯示有問題

問題1:項(xiàng)目時,做了個搜索框,想實(shí)現(xiàn)的功能是輸入信息的部分文字就能跳到該信息的位置,設(shè)置input框始終置頂,position:fixed,在蘋果手機(jī)的瀏覽器上,只要一輸入文字就會跳到該位置沒錯,但是input框因?yàn)檩斎敕ǖ某霈F(xiàn)沒看到,會出現(xiàn)圖二這種情況。
clipboard.png
(圖一:輸入法關(guān)閉之后才會顯示出該input搜索框)
clipboard.png
(圖二:注意光標(biāo)的位置。原本應(yīng)該是在input框進(jìn)行輸入的,但是輸入法一彈出變成只能在光標(biāo)的位置輸入,關(guān)閉輸入法才能回到圖一的位置)

問題2:為了實(shí)現(xiàn)輸入信息的部分文字就能跳到該信息的位置所以我的input代碼是這樣的(但是這樣也就造成每輸入一個字母就會頁面滑動位置,導(dǎo)致很混亂,不知道有沒有具體的方法可以解決這個問題):

/* 搜索 */
    $("#searchBox").bind("input propertychange", function () {
        var inputContent = $(this).val();
        var firstInputContent = $(inputContent).toPinyin().toUpperCase().slice(0, 1);
        if (inputContent != "") {
            if (letterArray.indexOf(firstInputContent) != -1) {
                /* $(window).scrollTop($('#' + firstInputContent + '1').offset().top - 150); */
                if ($("div[id^='" + inputContent + "']").length == 0) {
                    $(window).scrollTop($('#' + firstInputContent + '1').offset().top - 150);
                } else {
                    $(window).scrollTop($("div[id^='" + inputContent + "']").offset().top - 150);
                }
            }
        } else {
            $(window).scrollTop($('#B1').offset().top - 150);
        }

    });
回答
編輯回答
懷中人

這個問題我也遇到了,fixed定位導(dǎo)致的。
我現(xiàn)在的做法是,input未選中時fixed,選中時'absolute',頁面背景'overflow:hidden',這樣輸入框還是浮在頂上,失焦之后再換回來,要做的交互上好看的話,'overflow:hidden'的時候,用translate把頁面位移到scrollTop()的位置

2017年6月26日 14:59