Heim Web-Frontend js-Tutorial So implementieren Sie eine einfache Skin-Change-Funktion mit Vue + Less

So implementieren Sie eine einfache Skin-Change-Funktion mit Vue + Less

Jun 05, 2018 pm 04:59 PM
less vue

Im Folgenden werde ich Ihnen ein Beispiel für die Verwendung von Vue + Less zur Implementierung einer einfachen Skin-Änderungsfunktion vorstellen. Es hat einen guten Referenzwert und ich hoffe, dass es für alle hilfreich ist. Der von

durchgeführte Skin-Änderungseffekt ist relativ einfach, indem einfach die Hintergrundfarbe der oberen Navigation geändert wird. Das Folgende ist das Rendering.

Lassen Sie mich zunächst über meine ersten Gedanken sprechen.

Meine ursprüngliche Idee bestand darin, weniger zum Definieren von Variablen zu verwenden, die Variablen dann über js zu wechseln und den hautverändernden Effekt durch die geschalteten Variablen zu erzielen.

Ich habe zunächst eine neue theme.less-Datei mit folgendem Code erstellt:

 @theme:@themea;
 @themea:pink;
 @themeb:blue;
 @themec:gray;
Nach dem Login kopieren

Wie ich ursprünglich dachte, sollte die Variable @theme durch das Click-Event geändert werden. Wert.

Ich habe das Element-UI-Framework verwendet, daher ist der Code für mein Dropdown-Menü nicht kompliziert:

<el-dropdown class="colorBtn " trigger="click" @command="changeColor">
 <span class="el-dropdown-link " >换肤</span>
 <el-dropdown-menu slot="dropdown">
 <el-dropdown-item command="a" @click="change_type(a)">梦幻粉</el-dropdown-item>
 <el-dropdown-item command="b" @click="change_type(b)">天空蓝</el-dropdown-item>
 <el-dropdown-item command="c" @click="change_type(c)">雾霾灰</el-dropdown-item>
 </el-dropdown-menu>
</el-dropdown>
Nach dem Login kopieren

Das Rückrufereignis des Klickereignisses ist gebunden an Für das Befehlsereignis habe ich eine changeColor-Methode

  changeColor(command){
  console.log(command);//能获取到当前点击的元素的command
 }
Nach dem Login kopieren

definiert. Es stellt sich also die Frage: Wie ändere ich den Wert von @theme durch ein Klickereignis? Ich verfiel in tiefe Gedanken (Denken) ...

Endlich fand ich einen Umweg, um das Problem zu lösen. Eigentlich war die Idee am Anfang in Ordnung, aber sie musste neu verpackt werden. Wie verpacke ich es? Obwohl wir den Variablenwert vorerst nicht steuern können, können wir den Klassennamen des Elements steuern.

Wir können den Skinning-Teil extrahieren und die Funktion less verwenden, um ihn darzustellen, und den theme.less-Code in den folgenden Code ändern

wobei @backcolor die Hintergrundfarbe und @ ist fcolor ist die Schriftart Color

.theme(@backcolor:#EEA2AD,@fcolor:#fff) {
 .header {
 color: @fcolor;
 background: @backcolor;
 width: 100%;
 height: 2rem;
 position: relative;

 h4 {
  width: 100%;
  text-align: center;
  line-height: 2rem;
  font-size: 1rem;
 }
 .go-back {
  width: 2rem;
  height: 2rem;
  text-align: center;
  color: #fff;
  font-size: 0.8rem;
  float: left;
  line-height: 2rem;
  margin-left: 1rem;
  position: absolute;
  left: 0;
  top: 0;
 }
 .header-cont {
  width: 100%;
  text-align: center;
  line-height: 2rem;
  font-size: 1rem;
  color: #fff;
 }
 .colorBtn {
  width: 2rem;
  height: 2rem;
  text-align: center;
  color: #fff;
  font-size: 0.8rem;
  line-height: 2rem;
  margin-right: 1rem;
  position: absolute;
  top: 0;
  right: 0;
 }
 }
}
Nach dem Login kopieren

Erstellen Sie eine neue Farbe.less und legen Sie verschiedene Skin-Stile fest. Die verschiedenen Skin-Stile werden hier durch themea, themeb, themec ... dargestellt, die dem Befehlswert in der Komponente entsprechen. Wenn ich auf die rosa Farbe klicke, wird die entsprechende Funktion aufgerufen, um dem Element den entsprechenden Klassennamen hinzuzufügen. Vergessen Sie nicht, theme.less zu zitieren

 @import url(&#39;./theme.less&#39;);
  .themea{
   .theme();//默认的样式
  }
  .themeb{
   .theme(blue,#fff);
  }
  .themec{
   .theme(#111,#999);
  }
Nach dem Login kopieren

Wenn Sie auf das Dropdown-Menü mit der Skin klicken, muss die aufgerufene Methode „changeColor“ dem Element einen anderen Klassennamen hinzufügen. Denken Sie natürlich daran, die Farbe in Anführungszeichen zu setzen. weniger Datei.

 changeColor(command){
  console.log(command);
  document.getElementById(&#39;app&#39;).className =&#39;theme&#39;+command ;
 }
Nach dem Login kopieren

Bei der Arbeit an diesem Stück bin ich am Anfang auch auf ein Problem gestoßen, das heißt, ich habe den Stil dieser Seite am Anfang nur separat extrahiert, sodass sich die Kopfstile anderer Komponenten nicht geändert haben. Mein erster Gedanke war, Cookies zu verwenden. Dann dachte ich, dass es für mich in Ordnung ist, den Stil an ein Element der obersten Ebene zu binden, da es sich um eine einzelne Seite handelt.

Das Ergebnis kann sich sehen lassen! ! !

Wenn ich mich an die letzte Skin-Änderung erinnern möchte, verwende ich localStorage, um das Thema jeder Skin-Änderung aufzuzeichnen und dann festzustellen, ob es ein solches Thema gibt, bevor ich die Seite rendere. Der Effekt ist wie folgt

Das Obige habe ich für alle zusammengestellt und hoffe, dass es in Zukunft für alle hilfreich sein wird.

Verwandte Artikel:

Über das Problem des Extrahierens projektbezogener Konfigurationsdateien beim Packen von vue-cli (ausführliches Tutorial)

Probleme bei der Routing-Berechtigungsverwaltung mit Vue (ausführliches Tutorial)

Über die Methode zum Einfügen variabler Parameter in vue.js-Tag-Attribute (ausführliches Tutorial)

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine einfache Skin-Change-Funktion mit Vue + Less. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

So verwenden Sie Funktionsabfangweserven So verwenden Sie Funktionsabfangweserven Apr 08, 2025 am 06:51 AM

Funktionsabfangen in VUE ist eine Technik, mit der die Häufigkeit, mit der eine Funktion eingerufen wird, innerhalb eines bestimmten Zeitraums aufgerufen wird und Leistungsprobleme verhindern. Die Implementierungsmethode lautet: Importieren Sie die Lodash -Bibliothek: importieren {dunounce} aus 'lodash'; Verwenden Sie die Dabounce -Funktion, um eine Intercept -Funktion zu erstellen: const dabouncedFunction = dunounce (() = & gt; { / logical /}, 500); Rufen Sie die Abfangfunktion auf und die Steuerfunktion wird höchstens einmal in 500 Millisekunden aufgerufen.

See all articles