最近、同社は、下図に示すように、h5 ページ操作を完了するという要件を提示しました。 ネットで入手できるホイールがあまりなかったので、自分で作りました。では、これ以上長々とせずに、すぐにコードを見てみましょう。 <div class="verify-tel"> <h1>SMS認証</h1> <h2>SMS認証</h2> <div> <input ref="pwd" :maxlength="digits.length" v-model="msg" style="position: absolute;z-index: -1;opacity: 0"/> <ul class="pwd-wrap" @click="focus"> <li v-for="(item,key) 数字" :style="{'margin-right': (100-10*digits.length)/(digits.length-1)+'%','width':'10%'}" > <span v-if="msgLength > key">{{msg.substring(key,key+1)}}</span> </li> </ul> </div> </div> CSS部分(スタイル内容が複雑すぎるため、変更はスキップしてください) html,本文{ 幅: 100%; 高さ: 100%; 背景: #fbf9fe; } .verify-tel{ 背景色: #f9f9f9; マージン: 0 30px; >p{ 色: 赤; フォントの太さ: 太字; 上マージン: 40px; 下部マージン: 30px; } >h1{ フォントの太さ: 400; 下マージン: 0; } >h2{ 上マージン: 0; フォントの太さ: 400; フォントサイズ: 14px; 色: #858585; } .入力ボックス{ 上マージン: 30px; >入力{ 幅: 10%; 境界線: なし; border-bottom: 1px のソリッドグレー; 背景色: #f9f9f9; テキスト配置: 中央; 右マージン: 18%; フォントサイズ: 35px; &:集中{ border-bottom: 1px solid deepskyblue; } &:最後のタイプ{ 右マージン: 0 !重要; } } } .btn-ボックス{ >ボタン{ 高さ: 40px; 境界線: 1px 実線 #4e8cee; 色: #4e8cee; 背景色: 白; 境界線の半径: 4px; 幅: 30%; &:最後のタイプ{ フロート: 右; 幅: 65%; 高さ: 40px; 色: 白; 背景色: rgb(78,140,238); 境界線の半径: 4px; } } } } .pwd-wrap{ 左パディング: 0; 幅: 100%; 高さ: 44px; パディング下部: 1px; マージン: 0 自動; ディスプレイ: フレックス; ディスプレイ: -webkit-box; ディスプレイ: -webkit-flex; カーソル: ポインタ; 境界線: なし; 背景色: #f9f9f9; } .pwd-wrap li{ リストスタイルタイプ:なし; テキスト配置: 中央; 行の高さ: 44px; -webkit-box-flex: 1; フレックス: 1; -webkit-flex: 1; 境界線: なし; border-bottom:1px 黒一色; 背景色: #f9f9f9; &:最後のタイプ{ 右マージン: 0 !重要; } >スパン{ フォントサイズ: 20px; } } .pwd-wrap li:最後の子{ 右境界線: 0; } .pwd-wrap li i{ 高さ: 10px; 幅: 10px; 境界線の半径:50%; 背景: #000; 表示: インラインブロック; } jsコードの一部 <スクリプト> エクスポートデフォルト{ データ(){ 戻る { page:0, //1 は SMS 認証用です digits:['','','','','','',''], //入力ボックスの数字制御、ここで設定できる「入力ボックス」の数 メッセージ:''、 メッセージの長さ:0, } }, 方法:{ //携帯電話番号検証インターフェース関数 verifyTels:async function () { 試す{ }キャッチ(e){ コンソール.log(e) } }, //入力ボックスにフォーカスを当てる focus(){ this.$refs.pwd.focus(); }, }, beforeMount:関数() { //ビジネス ニーズにより複数のページが必要となり、数字は親コンポーネントから送信されるため、これを非表示にして、コードは 1 行のみ残します。 このページは1ページ目です。 }, 時計: メッセージ(curVal){ //入力長を監視します。入力が完了したら、検証インターフェース関数を自動的に呼び出します。if(curVal.trim().length===this.digits.length){ this.verifyTels(); } this.msgLength = curVal.length; }, 'ページ':{ ハンドラ:関数 (新しい値、古い値) { if(古い値==0&&新しい値==1){ // 初めてページに入るときに、フォーカスが自動的に取得されます。これは最適化できます。 this.timer = setTimeout(()=>{this.$refs.pwd.focus()},500); } }, 深い:本当 } }, beforeDestroy:関数() { タイムアウトをクリアします(this.timer); } } </スクリプト> ご不明な点がございましたら、ご連絡の上修正をお願いいたします。誰でも便利に使える 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: HTML テーブル タグ チュートリアル (36): テーブル ヘッダーの背景色属性 BGCOLOR
ページを書いているときに、ページの内容が小さくてフッターがページの真ん中に留まってしまうといった状況...
1. CSS の概念: (カスケーディング スタイル シート)利点: 1. コンテンツとプレゼンテ...
目次前面に書かれたルータ.jsonルート生成メニュー生成効果要約する前面に書かれたルートを繰り返し記...
Docker は非常に人気のあるコンテナ技術です。K8S によって廃止され、別のコンテナ技術である ...
一般的に、アーカイブされたファイルや圧縮されたファイルの内容を表示するには、まず解凍してから表示する...
序文多くの場合、仮想マシンを使用します。たとえば、一部のテストは検出されません。何かを壊すことを心配...
序文休日は終わっていますが、それは別の形で(お腹に触れることで)私たちに現れます。ミニプログラムでデ...
1. ホット デプロイメント: コンテナの実行中にプロジェクト全体を再デプロイすることを意味します。...
はじめに: MySQL は、スウェーデンの MySQL AB によって開発されたリレーショナル デー...
前の単語line-height、font-size、vertical-align は、インライン要素...
目次導入Homebrewをインストールするnvmをインストールするノードをインストールするインストー...
はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...
目次1. はじめに2. 本文2.1 Where句の位置2.2 演算子2.3 NULL値1. はじめに...
HTML <dl> タグ#定義と使用法<dl> タグは定義リストを定義します...
実験環境最小限にインストールされた CentOS 7.3 仮想マシン基本環境を構成する1. ngin...