1. 電卓機能の紹介データの加算(+)、減算(-)、乗算(*)、除算(/)、剰余演算(%)に加え、データの削除(Del)、クリア機能(C)を実現できます。 2. 計算機ページのデザイン1. ナビゲーションバー{ "ナビゲーションバーの背景色": "#fff", "ナビゲーションバーのテキストスタイル": "黒", "navigationBarTitleText": "電卓" } 2. データ部分データ:{ // データには初期データ num: "1" のみが配置されます。 op:" "//操作シンボルを記録} 3. index.wxmlレイアウトページ<ビュークラス="結果"> <view class="result-num">{{num}}</view> <view class="result-op">{{op}}</view> </ビュー> <view class="btns"> <表示> <view hover-class="bg" bindtap="reSetBtn">C</view> <view hover-class="bg" bindtap="delBtn">削除</view> <view hover-class="bg" bindtap="opBtn" data-val="%">%</view> <view hover-class="bg" bindtap="opBtn" data-val="/">/</view> </ビュー> <表示> <view hover-class="bg" bindtap="numBtn" data-val="7">7</view> <view hover-class="bg" bindtap="numBtn" data-val="8">8</view> <view hover-class="bg" bindtap="numBtn" data-val="9">9</view> <view hover-class="bg" bindtap="opBtn" data-val="*">*</view> </ビュー> <表示> <view hover-class="bg" bindtap="numBtn" data-val="4">4</view> <view hover-class="bg" bindtap="numBtn" data-val="5">5</view> <view hover-class="bg" bindtap="numBtn" data-val="6">6</view> <view hover-class="bg" bindtap="opBtn" data-val="-">-</view> </ビュー> <表示> <view hover-class="bg" bindtap="numBtn" data-val="1">1</view> <view hover-class="bg" bindtap="numBtn" data-val="2">2</view> <view hover-class="bg" bindtap="numBtn" data-val="3">3</view> <view hover-class="bg" bindtap="opBtn" data-val="+">+</view> </ビュー> <表示> <view hover-class="bg" bindtap="numBtn" data-val="0">0</view> <view hover-class="bg" bindtap="doBtn" data-val=".">.</view> <view hover-class="bg" bindtap="opBtn" data-val="=">=</view> </ビュー> </ビュー> 4. index.css スタイルページページ{ ディスプレイ: フレックス; flex-direction: column;/*プロジェクトの主軸の方向*/ 高さ: 100%; } 。結果{ flex: 1;/*要素を均等に配置する*/ 背景: #f3f6fe; 位置: 相対的; } .結果番号{ position: absolute;/*父の息子は死んだ*/ フォントサイズ: 20pt; 下部:5vh; 右:3vw; } .結果-op{ 位置: 絶対; フォントサイズ: 15pt; 下部:1vh; 右:3vw; } .btns{ フレックス: 1; ディスプレイ: フレックス; flex-direction: column;/*内部の大きなビューは垂直に配置されます*/ フォントサイズ: 17pt; 上境界線: 1rpx 実線 #ccc; 左境界線: 1rpx 実線 #ccc; } .btns>表示{ フレックス: 1; ディスプレイ: フレックス; } .btns>ビュー>ビュー{ flex-basis: 25%;/*幅の比率*/ 下部境界線: 1rpx 実線 #ccc; 右境界線: 1rpx 実線 #ccc; box-sizing: border-box;/*境界比率を加算*/ ディスプレイ:フレックス; アイテムの位置を中央揃えにします。 justify-content: center;/*2つの文を組み合わせるとテキストが中央に配置されます*/ } .btns>ビュー:最後の子>ビュー:最初の子{ フレックスベース: 50%; } .btns>ビュー:最初の子>ビュー:最初の子{ 色:#f00; } .btns>ビュー>ビュー:最後の子{ 色: #fcBe00; } .bg{ 背景: #eee; } 5. 運用結果3. 機能実装部分1. 削除機能substr() 関数には 2 つのパラメータがあり、最初のパラメータはインターセプションの開始位置を示し、2 番目のパラメータはインターセプションの長さを示します。 delBtn:関数(e){ var num=this.data.num.substr(0,this.data.num.length-1); this.setData({num:num===""? "0":num}) } 2. クリア機能reSetBtn:function(e){ // すべてが初期状態になる this.result=null; this.isClear = false; this.setData({num:"0",op:""}) } 3. その他の機能データ:{ // データには初期データ num: "1" のみが配置されます。 op:" "//操作シンボルを記録}, 結果:null、 isClear:false, // ステータスを記録するために使用 numBtn:function(e){ var num =e.target.dataset.val //data-val の値を取得します //0 を複数回押すか、isClear が true の場合、元のデータはクリアされ、押された番号が表示されます if(this.data.num==='0'||this.isClear){ this.setData({num:num})//取得した値をresultに渡す this.isClear=false }それ以外{ this.setData({num:this.data.num+num}) } }, opBtn:関数(e){ var op=this.data.op; //まず現在のオペレーションを記録する var num=Number(this.data.num);//現在のnumデータを取得します this.setData({op:e.target.dataset.val});//押されたボタンを変数opに渡します if(this.isClear){//上記の操作では、演算子が押された場合、isclearはtrueになります。ここでは、プラスキーの複数回の押下を避けるために、次のように動作します。 戻る } this.isClear=true; //ユーザーが計算ボタンを押してから数字を押すと、元の数字はクリアされます if (this.result===null) { this.result=数値; 戻る } if(op==="+"){ this.result=this.result+数値 this.setData({num:this.result})//追加された結果をnumに設定する }そうでない場合(op==="-"){ this.result=この結果番号 }それ以外の場合(op==="*"){ this.result=this.result*num }それ以外の場合(op==="/"){ this.result=この結果/数値 }それ以外の場合(op==="%"){ this.result=this.result%num } this.setData({num:this.result+""})//文字列型に変換}, doBtn:function(e){ if(this.isClear){//最後の操作が終了したことを意味します。最初に.を押すと、this.setData({num:"0."}); this.isClear = false; 戻る } //複数回押す場合。 if(this.data.num.indexOf(".")>=0){ 戻る } //通常の数値の後に this.setData({num:this.data.num+"."}) が続きます }, これで、JavaScript で計算機機能を実装する詳細なプロセスに関するこの記事は終了です。より関連性の高い JavaScript 計算機コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Dockerは複数のポートマッピングコマンドを有効にします
問題: vue-cil3 は、`--fix` オプションで修正できる可能性のある警告とともに実行され...
コードをコピーコードは次のとおりです。 wmode パラメータ:透過モード: z-indexを使用し...
目次序文1. カプセル化の重要性2. どのようにカプセル化しますか? 1. アイデア2. 準備2. ...
1. Oracle は大規模データベースですが、MySQL は小規模から中規模のデータベースです。O...
SQL実行ステップの詳細な分析まず、ステートメントが実行される順序を見てみましょう。 (8)選択する...
この記事では、配列を走査する 4 つの方法を比較してまとめます。 for ループ: for (let...
実際のプロジェクトでは、上下のスクロール バーと左右のスクロール バーは DIV 内にないため、右の...
1. MYSQLインデックスインデックス: MySQL がデータを効率的に取得するのに役立つデータ構...
目次一般的な配列メソッドポップ()シフト解除()シフト()スライス()スプライス()配列から重複した...
この記事では、CSS スティッキー フッターの実装コードを紹介し、共有します。詳細は次のとおりです。...
MYSQLの解凍バージョンがインストールされます1: 解凍後、my.ini ファイルをコピーし、バイ...
目次1. スクリプトvim環境2. シェルスクリプトで環境を定義する方法3. シェルスクリプト内の翻...
n 個のアイテムがあり、これらのアイテムをグリッド レイアウトの列に並べ替える必要があるとします。列...
目次変数意味があり発音しやすい変数名を使用する同じ型の変数には同じ語彙を使用する検索可能な名前を使用...
Word of Mouth に入社して 3 ~ 4 か月が経ちました。仕事の中で一番の収穫は、ビジュ...