最近、同社は、下図に示すように、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
この記事では、ショッピングカートの完全な機能を実現するためのjQueryの具体的なコードを参考までに...
要素までスクロールするたびに読み込みアニメーションを追加するにはどうすればよいですか?初期パラメータ...
1. はじめにMySQL にログインすると、次のような警告が表示されることがよくあります。警告: コ...
以下は、純粋な CSS で記述された画像マウスホバーズーム効果です。実際、基本原理は非常に単純です。...
src と href には違いがあり、混同される可能性があります。 src は現在の要素を置き換える...
目次インデックスとは何か主キーインデックスと通常のインデックスの違いインデックスにはどのデータ構造が...
私は最近、多くの音楽に特化した Linux ディストリビューションの 1 つである Audiovis...
React で国際化を実現するにはどうすればよいでしょうか? react-intlプラグインは、Re...
MySQL マルチテーブルクエリ (直積原理)まず、データが使用するテーブルを決定します。デカルト...
1. はじめに: mysql8以降は、これまでよく使われていたバージョンと比べてかなり変更点が大きい...
動作環境: MAC Docker バージョン: Docker version 17.12.0-ce,...
一部の Web サイトでは、画像が連続的にスクロールしているのをよく見かけます。この効果は、CSS ...
1. 2つのクエリエンジン(myIsamエンジン)のクエリ速度InnoDB はテーブル内の特定の行数...
MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...
具体的なコードは次のとおりです。 HTMLコードは次のとおりです <div class=&qu...