嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片

移動端 驗證碼/密碼 輸入框實現--安卓/ios適用

2019-7-16    seo達人

如果您想訂閱本博客內容,每天自動發到您的郵箱中, 請點這里

先貼圖,需要實現的效果是這樣的。



實現思路有兩個:

 

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

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

 

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

 

兩種方案遇到的坑,以及優缺點,如下:

 

方案一:6個input。

 

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

 

HTML:

<div class="divYZM">
    <!-- onpropertychange是為了避免在ios中oninput方法不被觸發 -->
    <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:我這里寫的刪除方法是有問題的,這也是我果斷放棄這種方案的原因之一。

 

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

 

但是輸入幾個數后,先點擊中間的框刪除一個數字,再回到最后,便只能將中間到最后的這幾個刪掉,最前面的還需要手動點一下得到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、當type為number時不起作用。這時需要用js控制。

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

 

 

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

 

隱藏input,用span顯示內容。大坑就是,何種情況下能調起ios的軟鍵盤呢?

 

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

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

第二種
display:none;
 

簡單粗暴,結果就是,ios木得反應。為啥呢,我想不通。

 

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

 

經測果然是可以的(默默譴責自己懶了一下,沒有將不隱藏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的樣式也包括對光標的隱藏,我在第一種方案中對光標未進行處理,因為在看到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內容改變時觸發
    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;'
    }
}
 
// 收起軟鍵盤的方法,點擊除了輸入框之外的其他區域就收起軟鍵盤
$('body').on('touchend', function(el) {
    if(el.target.tagName != 'SPAN') {
            $('yzm').blur()    
      }
})
 

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

 

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

$('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();">
因為此處的隱藏并非真正的隱藏,而是透明化處理,邊框包括光標全部透明化,但實際上它還是占位的,所以當你點擊輸入框上方空白處時,仍會喚起軟鍵盤,就和我們之前所想的點擊輸入框之外區域就收起軟鍵盤沖突了。

 

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

 

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

 藍藍設計www.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、網站建設 、平面設計服務。


日歷

鏈接

個人資料

藍藍設計的小編 http://www.sdgs6788.com

存檔

嫩草影院久久99_老司机午夜网站国内精品久久久久久久久_久久夜色精品国产_国产一级做a爰片久久毛片
<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • 国产精品毛片a∨一区二区三区|国| 久久精品亚洲| 欧美日韩在线免费| 亚洲深夜激情| 亚洲午夜电影| 国产一区二区三区丝袜| 久久一本综合频道| 你懂的成人av| 亚洲综合色网站| 午夜精品久久99蜜桃的功能介绍| 国产一区二区三区免费观看| 欧美成人一区在线| 欧美日韩高清在线| 午夜久久影院| 久久午夜激情| 亚洲一区自拍| 久久亚洲精品欧美| 亚洲网站视频| 久久在精品线影院精品国产| 一本久久a久久精品亚洲| 亚洲资源在线观看| 在线日韩av| 国产精品福利影院| 美女成人午夜| 亚洲欧美日韩精品久久久久| 久久久久女教师免费一区| 99精品国产一区二区青青牛奶| 亚洲在线国产日韩欧美| 91久久精品一区| 欧美一级视频免费在线观看| 99精品欧美| 久久精品青青大伊人av| 亚洲综合首页| 另类专区欧美制服同性| 久久av免费一区| 欧美日韩视频在线观看一区二区三区 | 麻豆精品一区二区av白丝在线| 99re8这里有精品热视频免费 | 亚洲视频www| 亚洲激情专区| 久久精品国产综合精品| 亚洲一二三四区| 欧美高清自拍一区| 裸体女人亚洲精品一区| 国产伦一区二区三区色一情| 亚洲精选大片| 亚洲日本免费| 免费久久99精品国产自在现线| 久久经典综合| 国产精自产拍久久久久久蜜| 一区二区三区欧美| 亚洲一二三区在线| 欧美三区在线视频| 亚洲开发第一视频在线播放| 亚洲国语精品自产拍在线观看| 久久精品免费电影| 久久久91精品| 国内精品久久久久影院薰衣草| 亚洲影视在线| 欧美一区亚洲| 国产日本亚洲高清| 午夜精品偷拍| 久久青草久久| 在线观看91久久久久久| 久久精品色图| 免费不卡亚洲欧美| 亚洲国产一区二区在线| 欧美**字幕| 亚洲欧洲精品成人久久奇米网| 一区二区在线免费观看| 久久影视精品| 亚洲国产激情| 亚洲视频图片小说| 国产精品网站在线| 欧美在线不卡视频| 理论片一区二区在线| 亚洲国产清纯| 欧美人体xx| 亚洲欧美日韩电影| 麻豆精品传媒视频| 亚洲精品美女91| 国产精品久久久久久久久搜平片| 午夜日韩av| 欧美午夜精品电影| 亚洲欧美日韩精品久久亚洲区| 久久久久久久91| 91久久国产综合久久蜜月精品 | 亚洲欧美激情四射在线日 | 蜜臀久久99精品久久久久久9| 亚洲国产精品热久久| 亚洲一二三区在线| 国内久久视频| 欧美日韩精品久久| 欧美一区二区精品在线| 亚洲高清在线精品| 性欧美大战久久久久久久久| 黄色成人在线网站| 欧美日韩免费精品| 久久先锋影音av| 在线中文字幕不卡| 欧美大片一区| 久久国产加勒比精品无码| 亚洲欧洲免费视频| 国产欧美一区二区三区久久人妖| 美玉足脚交一区二区三区图片| 亚洲新中文字幕| 亚洲高清资源| 久久琪琪电影院| 午夜欧美精品| 99re66热这里只有精品3直播| 国产日韩欧美日韩| 欧美日韩久久| 美女国内精品自产拍在线播放| 亚洲欧美日本精品| 日韩视频免费观看| 欧美激情1区2区3区| 久久国产主播精品| 亚洲影院污污.| 夜夜嗨av一区二区三区四季av | 在线观看精品视频| 国产日韩久久| 国产精品九九久久久久久久| 男男成人高潮片免费网站| 欧美一区在线直播| 午夜精品久久久久久久99黑人| 日韩一级精品| 亚洲高清资源| 亚洲第一精品夜夜躁人人爽| 裸体歌舞表演一区二区| 久久久久久久999| 欧美综合77777色婷婷| 亚洲影院在线| 亚洲欧美一区二区视频| 亚洲性视频网站| 亚洲一区二区在线播放| 中文欧美字幕免费| 日韩视频一区二区三区| 亚洲精品午夜| 99在线热播精品免费| 亚洲美女精品成人在线视频| 亚洲国产欧美一区二区三区久久| 亚洲国产午夜| 亚洲乱码一区二区| 99精品国产热久久91蜜凸| 99在线精品视频在线观看| 一区二区三区精品| 亚洲在线黄色| 性伦欧美刺激片在线观看| 久久岛国电影| 裸体女人亚洲精品一区| 亚洲第一区色| 亚洲日本成人网| 一区二区三区精密机械公司| 亚洲午夜一级| 欧美在线日韩| 免费日韩av| 久久综合激情| 久久一区二区三区四区五区| 嫩草伊人久久精品少妇av杨幂| 欧美激情区在线播放| 亚洲日本在线视频观看| 一区二区三区高清视频在线观看| 亚洲午夜精品福利| 久久精品免费播放| 欧美经典一区二区三区| 国产精品sss| 国色天香一区二区| 日韩亚洲精品电影| 欧美在线精品免播放器视频| 另类天堂av| 日韩午夜电影| 久久爱另类一区二区小说| 欧美大片在线观看| 国产精品一区二区久久| 亚洲福利在线看| 亚洲欧美日韩久久精品| 蜜桃精品久久久久久久免费影院| 亚洲日本电影| 久久精品论坛| 欧美午夜剧场| 亚洲国产精品久久久| 翔田千里一区二区| 亚洲福利视频网| 性亚洲最疯狂xxxx高清| 欧美欧美天天天天操| 国产在线乱码一区二区三区| 亚洲精品美女久久7777777| 久久精品国产亚洲精品| 亚洲精品乱码久久久久久黑人| 欧美在线视频网站| 欧美婷婷六月丁香综合色| 亚洲国产精品尤物yw在线观看| 亚洲欧美激情视频| 91久久精品一区| 久久蜜桃香蕉精品一区二区三区| 国产精品久久久久婷婷| 一区二区三区日韩精品视频| 免费成人美女女| 久久岛国电影| 国产日韩欧美91|