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:
|
<<: Standardzusammenfassung zur Analyse der Leistung einer SQL-Anweisung
>>: Detaillierte Erläuterung der praktischen Anwendung der Centos7 ESXi6.7-Vorlage
<br />Verwandte Artikel: 9 praktische Vorsch...
Die wichtigsten Protokolle im MySQL-Protokollsyst...
Formularelemente dynamisch hinzufügen Das dynamis...
In diesem Artikel wird die Installationsmethode d...
In diesem Artikelbeispiel wird der spezifische Co...
1. Übersicht Die Datenbank information_schema ist...
<br />Beim Hochladen auf manchen Websites wi...
Wenn Benutzer an einem Backend-Verwaltungssystem ...
Ich bin schon vor langer Zeit mit CSS in Berührun...
RPM-Paketverwaltung Ein Verpackungs- und Installa...
So zeigen Sie Linux-Dateien an Befehl zum Anzeige...
In diesem Artikel wird das Implementierungszeugni...
Inhaltsverzeichnis 1: MySQL-Ausführungsprozess 1....
Inhaltsverzeichnis Vorwort Funktionale React-Komp...
Aus verschiedenen Gründen müssen Sie manchmal den...