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

Detaillierte Diskussion über Speicher und Variablenspeicher in JS

Inhaltsverzeichnis Vorwort JS Magische Zahl Numme...

So steuern Sie die Startreihenfolge von Docker Compose-Diensten

Zusammenfassung Docker-Compose kann problemlos me...

Häufig gestellte Fragen zu Docker

Docker ordnet Ports nur IPv6 zu, nicht aber IPv4 ...

Vue+el-table realisiert das Zusammenführen von Zellen

In diesem Artikelbeispiel wird der spezifische Co...

Erläuterung der MySQL-Leistungsprüfung durch den Befehl „show processlist“

Der Befehl „show processlist“ ist sehr nützlich. ...

Wofür wird jQuery verwendet? jQuery ist eigentlich ein js-Framework

Einführung in jQuery Die jQuery-Bibliothek kann e...

Schritte zur Annotation von Metadeklarationen

Schritte zur Annotation von Metadeklarationen: 1. ...

Müssen Designer das Programmieren lernen?

Oftmals wird nach der Fertigstellung eines Webdes...

So konfigurieren Sie /var/log/messages im Ubuntu-Systemprotokoll

1. Problembeschreibung Heute muss ich die Systemp...

MySQL Master-Slave-Prinzip und Konfigurationsdetails

MySQL Master-Slave-Konfiguration und Prinzip, zu ...

Ein praktischer Bericht über einen durch den MySQL-Start verursachten Unfall

Inhaltsverzeichnis Hintergrund So ermitteln Sie, ...

Analyse der Methode zum Einrichten geplanter Aufgaben in MySQL

Dieser Artikel beschreibt anhand eines Beispiels,...