99久久精品国产片-99久久精品国产免费-99久久精品国产麻豆-99久久精品国产国产毛片-99久久精品国产高清一区二区-99久久精品费精品国产一区二区

移動端 驗證碼/密碼 輸入框?qū)崿F(xiàn)--安卓/ios適用

2019-7-16    seo達人

如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點這里

先貼圖,需要實現(xiàn)的效果是這樣的。



實現(xiàn)思路有兩個:

 

1、用6個input,輸入一個數(shù)字后將focus給下一個輸入框。

2、用一個input和6個span,input隱藏,用span顯示。

 

現(xiàn)在大部分都是使用的第二種方法。(當(dāng)然,如果你能說服產(chǎn)品也可以只用一個普通的input輸入框,就什么都不用考慮了)

 

兩種方案遇到的坑,以及優(yōu)缺點,如下:

 

方案一:6個input。

 

主要就是用js切換focus,在安卓是相當(dāng)流暢的,但是在ios會嚴重卡頓,簡直逼死強迫癥。

 

HTML:

<div class="divYZM">
    <!-- onpropertychange是為了避免在ios中oninput方法不被觸發(fā) -->
    <input id="check_1" class="numDiv" type="number" oninput="inputNext(check_1)" onpropertychange="inputNext(check_1)"/>
    <input id="check_2" class="numDiv" type="number" oninput="inputNext(check_2)" onpropertychange="inputNext(check_2)"/>
    <input id="check_3" class="numDiv" type="number" oninput="inputNext(check_3)" onpropertychange="inputNext(check_3)"/>
    <input id="check_4" class="numDiv" type="number" oninput="inputNext(check_4)" onpropertychange="inputNext(check_4)"/>
    <input id="check_5" class="numDiv" type="number" oninput="inputNext(check_5)" onpropertychange="inputNext(check_5)"/>
    <input id="check_6" class="numDiv" type="number" oninput="inputNext(check_6)" onpropertychange="inputNext(check_6)"/>
</div>
JS:

function inputNext (id){ // 傳過來的id是個對象
    var index = Number(id.id.split("_")[1])
    if (id.value.length < 1) { // 刪除
        id.value = ''
        if (index > 1) {
            var preId = 'check_' + Number(Number(index) - 1)
            document.getElementById(preId).focus()
            return false
        }
    } else {
        if(id.value.length>1) {
            var nextValue = id.value.slice(1, 2)
            var nextId = 'check_' + Number(Number(index) + 1)
            id.value = id.value.slice(0, 1)
            if ((index+1) <= 6) {
                document.getElementById(nextId).value = nextValue
                document.getElementById(nextId).focus()
            }
        }
    }
}
PS:我這里寫的刪除方法是有問題的,這也是我果斷放棄這種方案的原因之一。

 

如果正常輸入,然后刪除是可以的。

 

但是輸入幾個數(shù)后,先點擊中間的框刪除一個數(shù)字,再回到最后,便只能將中間到最后的這幾個刪掉,最前面的還需要手動點一下得到focus才能刪除。

 

這對用戶來說,簡直太不友好了。。。

 

CSS:

.divYZM{
    width: 90%;
    margin: 0 auto;
    height: 100px;
    background-color: rgba(74, 35, 35, 0.42);
}
.numDiv{
    display: block;
    width: 10%;
    float: left;
    border-radius: 5px;
    text-align: center;
    line-height: 60px;
    font-size: 20px;
    font-weight: 900;
    color: red;
    background-color: white;
    height: 60px;
    border: 0;
    padding: 0;
    margin: 0;
    margin-left: 5.7%;
    top: 20px;
    position: relative;
    caret-color: transparent;
}
這里遇到的坑,舉例一個。

 

input限制長度的屬性maxlength

 

a、與如下兩種配合使用(tel也可以限制)

<input type="text">  或者
<input type="password">
 

b、當(dāng)type為number時不起作用。這時需要用js控制。

<input type="number" oninput="if(value.length>5) value=value.slice(0,5)" />
注意:此外,tel類型的input在ios上會調(diào)出全數(shù)字鍵盤,而number類型的input則會調(diào)出帶有標(biāo)點符號的鍵盤。

 

 

方案二:1個input和6個span。

 

隱藏input,用span顯示內(nèi)容。大坑就是,何種情況下能調(diào)起ios的軟鍵盤呢?

 

先貼一下我剛開始的input樣式。

width: 0;
height :0;
border: 0;
padding: 0;
margin: 0;

第二種
display:none;
 

簡單粗暴,結(jié)果就是,ios木得反應(yīng)。為啥呢,我想不通。

 

后來在晚上睡覺的時候我在想,我這兩種方式input都么有占位啊,那是不是占位了就可以了呢?

 

經(jīng)測果然是可以的(默默譴責(zé)自己懶了一下,沒有將不隱藏input的情況,在手機上進行測試)。

 

接下來貼正確代碼。

 

CSS:

#yzm{
    width: 0;
    border: 0;
    padding: 0;
    margin: 0;
    height: .44rem;
    position: absolute;
    outline: none;
    color: transparent;
    text-shadow: 0 0 0 transparent;
    width: 300%;
    margin-left: -100%;
}
#yzmTable {
    width: 90%;
    margin: 0 auto;
    height: 100px;
    /* border: 1px solid red; */
    background-color: rgba(74, 35, 35, 0.42);
    /* opacity: 0.1; */
}
#yzmTable span { 
    display: block;
    width: 10%;
    float: left;
    border-radius: 5px;
    text-align: center;
    line-height: 60px;
    font-size: 20px;
    font-weight: 900;
    color: red;
    background-color: white;
    height: 60px;
    margin-left: 5.7%;
    top: 20px;
    position: relative;
}
這里對input的樣式也包括對光標(biāo)的隱藏,我在第一種方案中對光標(biāo)未進行處理,因為在看到ios的卡卡卡之后果斷放棄了第一種方案。

 

HTML:

<input id="yzm" type="tel" maxlength="6" value="" oninput="yzmInsert()">
<div id="yzmTable">
    <span id="s_1" onclick="intoYzm(1)">&nbsp;&nbsp;</span>
    <span id="s_2" onclick="intoYzm(2)">&nbsp;&nbsp;</span>
    <span id="s_3" onclick="intoYzm(3)">&nbsp;&nbsp;</span>
    <span id="s_4" onclick="intoYzm(4)">&nbsp;&nbsp;</span>
    <span id="s_5" onclick="intoYzm(5)">&nbsp;&nbsp;</span>
    <span id="s_6" onclick="intoYzm(6)">&nbsp;&nbsp;</span>
</div>
JS:

function intoYzm(index) {
    var ele = document.getElementById("yzm")
    ele.focus()
}
 
function yzmInsert() { // input內(nèi)容改變時觸發(fā)
    for (var i = 1; i <= 6; i++) {
        var nextId = 's_' + i
        document.getElementById(nextId).innerHTML = '&nbsp;&nbsp;'
    }
    var yzm = document.getElementById("yzm").value
    var yzmArr = yzm.split('');
    for (var i = 0; i < yzmArr.length; i++) {
        const num = yzmArr[i];
        var id = 's_' + Number(i + 1)
        document.getElementById(id).innerHTML = '&nbsp;' + num + '&nbsp;'
    }
}
 
// 收起軟鍵盤的方法,點擊除了輸入框之外的其他區(qū)域就收起軟鍵盤
$('body').on('touchend', function(el) {
    if(el.target.tagName != 'SPAN') {
            $('yzm').blur()    
      }
})
 

在第二種方案中有兩個地方注意下:

 

a、在js方法中加了對全局中6個span標(biāo)簽(即六個輸入框)之外區(qū)域點擊事件的監(jiān)聽,用以收起軟鍵盤,方法如下。

$('body').on('touchend', function(el) {
    if(el.target.tagName != 'SPAN') {
        $('yzm').blur()
    }
})
 (比較粗糙,如果頁面中還有別的部分就比較受影響了,可以自行改進)

b、在隱藏的input中添加了onclick方法,如下并且在其中用了blur方法使得此輸入框失去焦點。為什么這么做呢?

<input id="yzm" type="tel" maxlength="6" value="" oninput="yzmInsert()" onclick="this.blur();">
因為此處的隱藏并非真正的隱藏,而是透明化處理,邊框包括光標(biāo)全部透明化,但實際上它還是占位的,所以當(dāng)你點擊輸入框上方空白處時,仍會喚起軟鍵盤,就和我們之前所想的點擊輸入框之外區(qū)域就收起軟鍵盤沖突了。

 

因此將input自身的點擊獲取focus禁止掉,就OK了。

 

之前都是自己亂七八槽的瞎記,第一次寫給別人看,經(jīng)驗不足,時間倉促。不足之處,還望指正。

 藍藍設(shè)計www.lapeinture.cn )是一家專注而深入的界面設(shè)計公司,為期望卓越的國內(nèi)外企業(yè)提供卓越的UI界面設(shè)計、BS界面設(shè)計 、 cs界面設(shè)計 、 ipad界面設(shè)計 、 包裝設(shè)計 、 圖標(biāo)定制 、 用戶體驗 、交互設(shè)計、網(wǎng)站建設(shè) 平面設(shè)計服務(wù)。


日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://www.lapeinture.cn

存檔

一a一级片| 一本高清在线| 色综合久久天天综线观看| 亚洲精品影院一区二区| 久久成人性色生活片| 午夜在线观看视频免费 成人| 999久久66久6只有精品| 色综合久久天天综合观看| 黄色免费三级| 欧美另类videosbestsex| 精品在线视频播放| 久草免费资源| 999久久狠狠免费精品| 91麻豆精品国产自产在线 | 久久99中文字幕| 日本伦理黄色大片在线观看网站| 国产伦理精品| 午夜家庭影院| 成人a级高清视频在线观看| 成人在激情在线视频| 免费国产在线观看不卡| 国产一区二区精品| 久久久成人网| 国产视频一区二区三区四区| 久久国产精品自由自在| 国产成人精品综合在线| 99久久网站| 国产不卡精品一区二区三区| 青青久热| 亚州视频一区二区| 国产一区二区精品| 国产a免费观看| 日本在线不卡视频| 国产视频一区在线| 日韩在线观看免费| 欧美爱爱动态| 国产网站免费视频| 日本乱中文字幕系列| 午夜欧美成人香蕉剧场| 免费一级片在线| 美国一区二区三区| 国产精品12| 精品国产三级a| 日本在线www| 国产伦精品一区二区三区无广告| 99久久精品费精品国产一区二区| 成人免费一级纶理片| 国产视频在线免费观看| 国产伦理精品| 欧美另类videosbestsex高清| 欧美日本韩国| 亚洲不卡一区二区三区在线| a级毛片免费全部播放| 一级女性大黄生活片免费| 欧美激情影院| 香蕉视频久久| 欧美另类videosbestsex久久| 999精品在线| 精品视频免费在线| 四虎影视库| 91麻豆国产福利精品| 韩国三级视频网站| 亚久久伊人精品青青草原2020| 午夜欧美成人香蕉剧场| 午夜久久网| 黄视频网站免费| 国产高清视频免费观看| 四虎影视库国产精品一区| 精品国产一区二区三区国产馆| 青草国产在线| 一级毛片视频在线观看| 久久精品免视看国产明星| 美国一区二区三区| 欧美大片aaaa一级毛片| 美国一区二区三区| 国产伦精品一区二区三区在线观看 | 一本伊大人香蕉高清在线观看| 欧美爱爱动态| 午夜久久网| 国产91素人搭讪系列天堂| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产成人啪精品| 国产伦久视频免费观看视频| 韩国毛片免费| 欧美国产日韩在线| 午夜在线影院| 午夜在线观看视频免费 成人| 成人a级高清视频在线观看| 精品视频在线观看视频免费视频| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 麻豆午夜视频| 日本特黄特黄aaaaa大片| 日韩专区亚洲综合久久| 精品国产一区二区三区国产馆| 91麻豆国产| 日韩中文字幕一区| 99久久精品国产麻豆| 午夜家庭影院| 99久久精品费精品国产一区二区| 精品视频免费在线| 香蕉视频三级| 毛片高清| 日本免费乱人伦在线观看 | 久久精品免视看国产明星| 精品国产一区二区三区精东影业| 四虎影视库国产精品一区| 日韩中文字幕一区| 亚洲 激情| 美女免费精品高清毛片在线视| 精品久久久久久中文| 国产视频在线免费观看| 国产综合成人观看在线| 国产不卡在线播放| 99热视热频这里只有精品| 精品久久久久久中文字幕一区| 四虎影视库| 青青青草影院 | 99久久精品费精品国产一区二区| 精品视频一区二区三区免费| 国产一区二区精品久| 精品国产一区二区三区久久久蜜臀| 日韩免费在线视频| 天天色成人| a级黄色毛片免费播放视频| 99热热久久| 九九九在线视频| 精品毛片视频| 国产激情视频在线观看| 久久精品店| 日韩专区亚洲综合久久| 国产麻豆精品视频| 国产视频一区在线| 日韩avdvd| 国产成人精品在线| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 色综合久久久久综合体桃花网| 99热视热频这里只有精品| 四虎久久影院| 久久国产精品自线拍免费| 国产极品白嫩美女在线观看看| 国产视频一区二区在线播放| 欧美国产日韩在线| 国产原创中文字幕| 成人影院一区二区三区| a级黄色毛片免费播放视频| 欧美激情伊人| 美国一区二区三区| 国产一区二区精品| 麻豆午夜视频| 国产一区二区精品| 国产一区二区福利久久| 免费一级片在线| 国产精品自拍亚洲| 国产视频一区二区在线播放| 天天做日日干| 高清一级淫片a级中文字幕 | 毛片高清| 日韩女人做爰大片| 欧美国产日韩在线| 欧美激情伊人| 国产视频一区在线| 国产原创视频在线| 你懂的日韩| 高清一级毛片一本到免费观看| 天天做日日干| 国产原创视频在线| 国产美女在线观看| 99色视频在线| 亚洲精品中文一区不卡 | 国产伦精品一区二区三区在线观看| 成人a大片高清在线观看| 欧美大片aaaa一级毛片| 一级毛片视频在线观看| 国产原创视频在线| 国产韩国精品一区二区三区| 九九久久99| 国产91精品一区| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 日韩女人做爰大片| 午夜在线观看视频免费 成人| 日韩在线观看免费完整版视频| 亚洲天堂一区二区三区四区| 97视频免费在线| 国产不卡高清在线观看视频| 黄色短视屏| 欧美日本国产| 国产网站免费观看| 欧美爱爱动态| 久久久久久久久综合影视网| 成人免费一级纶理片| 日韩欧美一及在线播放| 日韩女人做爰大片| 九九久久99| 国产麻豆精品视频| 国产a网| 亚洲精品影院一区二区| 日韩专区亚洲综合久久| 久久久久久久免费视频| 国产成人啪精品| 亚洲精品久久久中文字|