WeChat-Applet implementiert Taschenrechnerfunktion

WeChat-Applet implementiert Taschenrechnerfunktion

WeChat-Miniprogramme erfreuen sich immer größerer Beliebtheit. Ich habe auch viele College-Studenten gesehen, die sie sich selbst beigebracht haben. Diejenigen, die sich auf App-Entwicklung und Webentwicklung spezialisiert haben, haben die Möglichkeiten von Miniprogrammen erkannt und sich ebenfalls auf dem Gebiet der Miniprogramme engagiert. Ich habe mir auch selbst beigebracht, wie man Miniprogramme lernt. In den Anfangstagen stieß ich wie viele andere auf einige Dinge, die ich nicht verstand und die ich andere fragen wollte. Ich ging zu Tieba, aber es gab dort viele Anzeigen und niemanden, der mir bei der Lösung des Problems helfen konnte.

Heute werde ich einigen Anfängern beibringen, wie man einen Taschenrechner baut. Wenn C die beste Programmiersprache für Anfänger ist, dann sollte der Taschenrechner als Einführungsdemo für kleine Programme betrachtet werden. Ich hoffe, dass Anfänger den folgenden Code von wxml über js und dann über wxss (Seitenlayout) sorgfältig lesen. Sie müssen die Bedeutung jedes Codes verstehen.

Ohne weitere Umschweife ist hier das Effektdiagramm. Dies ist ein Rechner, den ich zu Beginn erstellt habe. Er ist sehr einfach und die Logik ist sehr einfach. Es ist einfach die Logik des gängigsten Rechners um uns herum. Ich denke, durch diese Demo habe ich mehr über das Layout von wxss-Seiten gelernt.

Angehängter Code:

app.json

 {
  "Seiten":[
    "Seiten/Index/Index",
    "Seiten/Protokolle/Protokolle"
  ],
  "Fenster":
  {
  "navigationBarBackgroundColor": "#000000",
  "navigationBarTextStyle": "weiß", 
  "navigationBarTitleText": "Intelligenter Rechner"
  },
 "tabBar": { //Zusätzlich wird meine tabBar verwendet, um die untere Registerkarte festzulegen "color":"#ff69b4",
   "ausgewählteFarbe":"#0000ff",
   "Hintergrundfarbe": "#ffff00",
  "Liste": [
    {
      "pagePath": "Seiten/Index/Index",
      "text": "Computer"
    },
    {
      "pagePath": "Seiten/Protokolle/Protokolle",
      "text": "Protokoll"
    },
    {
      "Seitenpfad": "Seiten/Protokolle/Protokolle",
      "Text": "Nach Hause gehen"
    }
  ]
}
}

/*App.wxss/*

.container {
  Höhe: 100%;
  Anzeige: Flex;
  Flex-Richtung: Spalte;
  Elemente ausrichten: zentrieren;
  Inhalt ausrichten: Abstand dazwischen;
  Polsterung: 200rpx 0;
  Box-Größe: Rahmenbox;
}

**Wenn Sie einige dieser Komponenten nicht erkennen, wird empfohlen, die offizielle Website des WeChat Mini-Programms zu besuchen und sie mehrmals durchzulesen.

Dateiindex.wxml:

<Vorlagenname="Rechnerschlüssel">
  <button hover-start-time="{{5}}" hover-stay-time="{{100}}" hover-class="calculator-key-hover" data-key="{{className}}" class="calculator-key {{className}}">{{display}}</button>
</Vorlage>

<Klasse anzeigen="Rechner">
  <Ansichtsklasse="Rechneranzeige">
    <view class="calculator-display-text">{{Anzeigewert}}</view>
  </Ansicht>
  <Ansichtsklasse="Taschenrechner-Tastatur">
    <Ansichtsklasse="Eingabetasten">
      <view class="Funktionstasten" catchtap="onTapFunction">
        <template ist="calculator-key" data="{{className: 'key-clear', display: clearDisplay ? 'C' : 'C'}}"/>
        <template ist="calculator-key" data="{{className: 'key-sign', display: '+/-'}}"/>
        <template ist="calculator-key" data="{{className: 'key-percent', display: '%'}}"/>
   </Ansicht>
      <view Klasse="Zifferntasten" catchtap="onTapDigit">
        <template ist="Rechnerschlüssel" data="{{className: 'key-0', Anzeige: '0'}}"/>
        <template ist="calculator-key" data="{{className: 'key-dot', display: '●'}}"/>
        <template ist="Rechnerschlüssel" data="{{className: 'key-1', Anzeige: '1'}}"/>
        <template ist="Rechnerschlüssel" data="{{className: 'Schlüssel-2', Anzeige: '2'}}"/>
        <template ist="calculator-key" data="{{className: 'key-3', display: '3'}}"/>
        <template ist="calculator-key" data="{{className: 'key-4', display: '4'}}"/>
        <template ist="calculator-key" data="{{className: 'key-5', display: '5'}}"/>
        <template ist="calculator-key" data="{{className: 'key-6', display: '6'}}"/>
        <template ist="calculator-key" data="{{className: 'key-7', display: '7'}}"/>
        <template ist="calculator-key" data="{{className: 'key-8', display: '8'}}"/>
        <template ist="calculator-key" data="{{className: 'key-9', display: '9'}}"/>
      </Ansicht>
    </Ansicht>
    <view class="operator-keys" catchtap="onTapOperator">
        <template ist="Rechnerschlüssel" data="{{className: 'Schlüssel-Divide', Anzeige: '÷'}}"/>
        <template ist="calculator-key" data="{{className: 'key-multiply', display: '×'}}"/>
        <template ist="calculator-key" data="{{className: 'key-subtract', display: '−'}}"/>
        <template ist="Rechnerschlüssel" data="{{className: 'key-add', Anzeige: '+'}}"/>
        <template ist="calculator-key" data="{{className: 'key-equals', display: '='}}"/>
    </Ansicht>
  </Ansicht>
</Ansicht>

Die folgende Datei wird im folgenden Beispiel angezeigt:

Seite({
  Daten: {
    value: null, // Das Ergebnis der letzten Berechnung. null bedeutet, dass kein Ergebnis der letzten Berechnung vorliegt. displayValue: „0“, // Anzeigewert operator: null, // Das Symbol der letzten Berechnung. null bedeutet, dass keine unvollendete Berechnung vorliegt. waitingForOperand: false // Ob der vorherige Schlüssel ein Berechnungssymbol ist. },

  onLoad: Funktion (Optionen) {
    diese.RechnerOperationen = {
      'key-divide': (vorherigerWert, nächsterWert) => vorherigerWert / nächsterWert,
      'Schlüsselmultiplikation': (vorheriger Wert, nächster Wert) => vorheriger Wert * nächster Wert,
      'key-add': (vorherigerWert, nächsterWert) => vorherigerWert + nächsterWert,
      'key-subtract': (vorherigerWert, nächsterWert) => vorherigerWert - nächsterWert,
      „Schlüssel ist gleich“: (vorherigerWert, nächsterWert) => nächsterWert
    }
  },

  /* Wechselstrombetrieb, zurück in die Zeit vor der Befreiung*/
  Alles löschen() {
    dies.setData({
      Wert: null,
      Anzeigewert: '0',
      Operator: null,
      waitingForOperand: false
    })
  },

  /* Nur den aktuell angezeigten Eingabewert löschen*/
  Anzeige löschen() {
    dies.setData({
      Anzeigewert: '0'
    })
  },

  onTapFunction: Funktion (Ereignis) {
    const Schlüssel = Ereignis.Ziel.Datensatz.Schlüssel;

    Schalter (Schlüssel) {
      Fall 'Schlüssel löschen':
        wenn (dieser.Daten.Anzeigewert !== '0') {
          dies.clearDisplay();
        } anders {
          dies.clearAll();
        }

        brechen;

      Fall 'Schlüsselzeichen':
        var neuerWert = parseFloat(this.data.displayValue) * -1

        dies.setData({
          Anzeigewert: String(neuerWert)
        })

        brechen;

      Fall 'Schlüsselprozentsatz':
        const fixedDigits = this.data.displayValue.replace(/^-?\d*\.?/, '')
        var neuerWert = parseFloat(this.data.displayValue) / 100

        dies.setData({
          Anzeigewert: String(neuerWert.toFixed(fixedDigits.length + 2))
        });

        brechen;

      Standard:
        brechen;
    }
  },

  onTapOperator: Funktion (Ereignis) {
    const nextOperator = Ereignis.Ziel.Dataset.Schlüssel;
    const inputValue = parseFloat(this.data.displayValue);

    wenn (dieser.Datenwert == null) {
      dies.setData({
        Wert: Eingabewert
      });
    } sonst wenn (dieser.Daten.Operator) {
      const aktuellerWert = dieser.Datenwert || 0;
      const neuerWert = this.calculatorOperations[this.data.operator](aktuellerWert, Eingabewert);

      dies.setData({
        Wert: neuerWert,
        Anzeigewert: String(neuerWert)
      });
    }

    dies.setData({
      warteAufOperand: wahr,
      Operator: nächsterOperator
    });
  },

  onTapDigit: Funktion (Ereignis) {
    const key = event.target.dataset.key; // Markiere den Schlüssel entsprechend dem Datenschlüssel if (key == 'key-dot') {
      // Drücken Sie den Punkt if (!(/\./).test(this.data.displayValue)) {
        dies.setData({
          Anzeigewert: this.data.displayValue + '.',
          waitingForOperand: false
        })
      }
    } anders {
      // Drücken Sie die Zifferntaste const digit = key[key.length - 1];

      wenn (diese.Daten.wartenAufOperand) {
        dies.setData({
          Anzeigewert: String(Ziffer),
          waitingForOperand: false
        })
      } anders {
        dies.setData({
          Anzeigewert: this.data.displayValue === '0' ? String(Ziffer) : this.data.displayValue + Ziffer
        })
      }
    }
  }
})

index.wxss:

Seite {
  Höhe: 100 %;
}

.Rechner {
  Breite: 100 %;
  Höhe: 100vh;
  Rand: durchgezogen 1px;
  Hintergrund: rgb(238, 5, 5);
  Position: relativ;
  Kastenschatten: 0px 0px 20px 0px rgb(211, 41, 41);
  Anzeige: Flex;
  Flex-Richtung: Spalte;
  Box-Größe: Rahmenbox;
}

.calculator-display { /*Hintergrundfarbe anzeigen*/
  Hintergrund: #2c2a2c;
  biegen: 1;
}

/*TODO: Lösen Sie das Problem der vertikalen Zentrierung von Text und zeigen Sie digitale Farben an*/
.Rechner-Anzeige-Text {
  Polsterung: 0 30px;
  Schriftgröße: 3em;
  Farbe: RGB (245, 245, 248);
  Textausrichtung: rechts;
}

.Taschenrechner-Tastatur {
  Anzeige: Flex;

}

.Taschenrechner .Funktionstasten {
  Anzeige: Flex;
  Farbe: RGB (245, 13, 13);

}

.Taschenrechner .Zifferntasten {
  Hintergrund: #0808f7;
  Anzeige: Flex;
  Flex-Richtung: Reihe;
  Flex-Wrap: Wrap-Rückseite;
}

.calculator-key-hover { /*Die Farbe der Schaltfläche nach dem Drücken*/
  Box-Shadow: Einschub 0px 0px 25vw 0px hsla (71, 90 %, 48 %, 0,898);
}



.Rechner-Schlüssel {
Hintergrundfarbe: Aqua;

  Anzeige: Block;
  Breite: 25vw;
  Höhe: 25vw;
  Zeilenhöhe: 25vw;
  Rahmen oben: 1px durchgezogenes RGB (6, 245, 78);
  Rahmen rechts: 1px durchgezogenes RGB (19, 241, 12);
  Textausrichtung: zentriert;
  Box-Größe: Rahmenbox;
}

.Taschenrechner .Funktionstasten .Taschenrechner-Taste {
  Schriftgröße: 2em;

}

.Taschenrechner .Zifferntasten .Taschenrechnertaste {
  Schriftgröße: 3em;
}

.Taschenrechner .Zifferntasten .Taste-0 {
  Breite: 50vw;
  Textausrichtung: links;
  Polsterung links: 9vw;
}

.Taschenrechner .Zifferntasten .Tastenpunkt {
  Polsterung oben: 1em;
  Schriftgröße: 0,75em;
}

.Rechner .Operator-Schlüssel .Rechner-Schlüssel {
  Farbe: RGB (248, 165, 10);
  Rand rechts: 0;
  Schriftgröße: 3em;
}

.Taschenrechner .Funktionstasten {
  Hintergrund: linearer Farbverlauf (nach unten, RGB (6, 6, 240) 0 %, RGB (52, 5, 240) 100 %);
}

.Rechner .Operator-Schlüssel {
  Hintergrund: linearer Farbverlauf (nach unten, rgba(252,156,23,1) 0 %, rgba(247,126,27,1) 100 %);
}

.Eingabetasten {
  Breite: 100 %;
}

.operator-keys {
  Breite: 100 %;
} 

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Das WeChat-Applet implementiert einen einfachen Rechner
  • Implementieren von Rechnerfunktionen mit dem WeChat-Applet
  • Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion
  • Beispiel für einen WeChat-Applet-Rechner
  • WeChat-Applet implementiert Taschenrechnerfunktion
  • Das WeChat-Applet implementiert eine einfache Taschenrechnerfunktion
  • Das WeChat-Applet implementiert einen einfachen Rechner
  • Codebeispiel für die Implementierung eines einfachen Rechners für das WeChat-Applet
  • Beispiel für einen WeChat-Applet-Rechner

<<:  Standardzusammenfassung zur Analyse der Leistung einer SQL-Anweisung

>>:  Detaillierte Erläuterung der praktischen Anwendung der Centos7 ESXi6.7-Vorlage

Artikel empfehlen

9 Tipps für das Webseiten-Layout

<br />Verwandte Artikel: 9 praktische Vorsch...

Detaillierte Erläuterung des Redo-Logs und Undo-Logs in MySQL

Die wichtigsten Protokolle im MySQL-Protokollsyst...

Grafisches Tutorial zur Installation der komprimierten Version von MySQL 8.0.15

In diesem Artikel wird die Installationsmethode d...

Vue implementiert Countdown-Funktion

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der MySQL information_schema-Datenbank

1. Übersicht Die Datenbank information_schema ist...

Untersuchung der Eingabetastenfunktion vom Typ „Datei“

<br />Beim Hochladen auf manchen Websites wi...

Beispielcode zur Implementierung der Menüberechtigungssteuerung in Vue

Wenn Benutzer an einem Backend-Verwaltungssystem ...

CSS float (float, clear) beliebte Erklärung und Erfahrungsaustausch

Ich bin schon vor langer Zeit mit CSS in Berührun...

Detaillierte Erklärung der Linux-RPM- und Yum-Befehle und -Verwendung

RPM-Paketverwaltung Ein Verpackungs- und Installa...

Detaillierte Erklärung der Befehle zum Anzeigen von Linux-Dateien

So zeigen Sie Linux-Dateien an Befehl zum Anzeige...

Transkript der Implementierung berechneter Vue-Eigenschaften

In diesem Artikel wird das Implementierungszeugni...

Ein umfassendes Verständnis der funktionalen Komponenten von Vue.js

Inhaltsverzeichnis Vorwort Funktionale React-Komp...