Implementierungscode für die Schiebeschalterfunktion der Registerkarte „Links“ und „Rechts“ des WeChat-Applet

Implementierungscode für die Schiebeschalterfunktion der Registerkarte „Links“ und „Rechts“ des WeChat-Applet

Effektbild:

Bildbeschreibung hier einfügen

1. Einleitung

Ihr eigenes Applet muss eine solche Funktion implementieren

1. Kernidee

Swiper und Scroll-View teilen sich zwei Variablen: currentTab navScrollLeft. Wenn Sie auf Nav klicken oder Swiper verschieben, setzen Sie die Werte der beiden Variablen auf den aktuellen Index.

2. Umsetzung

Die Tab-Navigationsleiste verwendet das Tag <scroll-view> und der Inhalt verwendet <swiper>

1.wxml-Implementierung

<Klasse anzeigen="Container">
 <!-- Tab-Navigationsleiste -->
 <!-- Mit dem Attribut „scroll-left“ lässt sich die Position der Bildlaufleiste steuern-->
 <!-- scroll-with-animation Scrollen fügt einen Animationsübergang hinzu -->
 <!-- 
  scroll-x="wahr"
  navScrollLeft: 0 Anfangswert navData: Tab-Text
  Verwenden Sie wx:for-item, um den Variablennamen des aktuellen Elements des Arrays anzugeben.
  Verwenden Sie wx:for-index, um den Variablennamen des aktuellen Index des Arrays anzugeben:
  -->

  <!--tabs -->
 <scroll-view scroll-x="true" class="nav" scroll-left="{{navScrollLeft}}" scroll-with-animation="{{true}}">
  <block wx:for="{{navData}}" wx:for-index="idx" wx:for-item="navItem" wx:key="idx">
   <!-- Bestimmen Sie, ob es ausgewählt ist, und legen Sie den Stil fest, wenn es ausgewählt ist-->
   <!-- switchNav -->
   <view class="nav-item {{currentTab == idx ?'active':''}}" data-current="{{idx}}" bindtap="switchNav">
    {{navItem.text}}</view>
  </block>
 </scroll-ansicht>


 <!-- Seiteninhalt -->
 <!-- duration="300": Dauer der Gleitanimation -->
 <!-- switchTab -->
 <swiper class="tab-box" current="{{currentTab}}" duration="300" bindchange="switchTab">
  <swiper-item wx:für="{{[0,1,2,3,4,5,6]}}" wx:für-item="tabItem" wx:für-index="idx" wx:key="idx"
   Klasse="Tab-Inhalt">
   {{tabItem}}
  </swiper-item>
 </swiper>
</Ansicht>

2.js-Implementierung

//index.js
//Anwendungsinstanz abrufen const app = getApp()

Seite({
 Daten: {
  Navigationsdaten:[
   {
    Text: 'Neuigkeiten'
   },
   {
    Text: 'Geständnis'
   },
   {
    Text: ‚Zum Mitnehmen‘
   },
   {
    Text: „Werde Nachhilfelehrer“
   },
   {
    Text: „Finde einen Nachhilfelehrer“
   },
   {
    Text: „Ein Haus mieten“
   },
   {
    Text: 'Fahrschule'
   }
  ],
  aktuellerTab: 0,
  navScrollLeft: 0
 },
 //Ereignisverarbeitungsfunktion onLoad: function () {
  
 },
 switchNav(Ereignis){
  // Die ID des aktuellen Tabs abrufen
  var cur = event.currentTarget.dataset.current; 
  //Jede Tab-Option nimmt 1/5 der Breite ein
  var singleNavWidth = this.data.windowWidth / 5;

  //Tabulatoroption zentriert this.setData({
   navScrollLeft: (aktuell - 2) * singleNavWidth
  }) 
  // Überprüfen Sie, ob die ID mit der ID des angeklickten Tabs übereinstimmt, if (this.data.currentTab == cur) {
   gibt false zurück;
  } anders {
   dies.setData({
    currentTab: aktuell
   })
  }
 },
 
 switchTab(Ereignis){
  var cur = Ereignis.Detail.aktuell;
  var singleNavWidth = this.data.windowWidth / 5;
  dies.setData({
   currentTab: aktuell,
   navScrollLeft: (aktuell - 2) * singleNavWidth
  });
 }
})

3.wxss-Implementierung

/**index.wxss**/
Seite {
 Breite: 100 %;
 Höhe: 100%;
}

.container {
 Breite: 100 %;
 Höhe: 100%;
}

.nav {
 /* Breite und Höhe der Tab-Navigation festlegen*/
 Höhe: 80rpx;
 Breite: 100 %;

 /* Wenn Sie zwei umrandete Kästen nebeneinander platzieren müssen,
 Dies lässt sich durch die Einstellung der Boxgröße auf „Border-Box“ erreichen. */
 Box-Größe: Rahmenbox;

 Überlauf: versteckt;

 /* Mitte */
 Zeilenhöhe: 80rpx;

 Hintergrund:
 #f7f7f7;

 Schriftgröße: 16px;

 /* Gibt an, dass der Text in einem Absatz nicht umbrochen wird: */
 Leerzeichen: Nowrap;

 Position: fest;
 oben: 0;
 links: 0;
 Z-Index: 99;
}

.nav-Element {
 Breite: 20 %;
 Anzeige: Inline-Block;
 Textausrichtung: zentriert;
}

.nav-item.active {
 Farbe:
 Grün;
}

.tab-box {
 Hintergrund:
 rgb(31, 201, 96);
 /* Setze dies auf die Höhe von nav*/
 Polsterung oben: 80rpx;
 Höhe: 100%;
 Box-Größe: Rahmenbox;
}

.tab-Inhalt {
 /* Beschneidet die linken/rechten Ränder des Inhalts in einem Div-Element – ​​wenn dieser über den Inhaltsbereich des Elements hinausgeht: */
 Überlauf-y: scrollen;
}

3. Referenzen und Zusammenfassung

Dieser Artikel bezieht sich auf https://www.jb51.net/article/169290.htm

Lösungsprozess
1. Die Breite der Registerkarte ist auf 1/5 festgelegt und kann je nach Inhalt der Registerkarte verbessert und geändert werden.

4. Optimierung

0. Rendern

Bildbeschreibung hier einfügen

1. Die Länge der einzelnen Tabs ist adaptiv. 2. Beim Klicken auf den vorherigen Tab

Wenn Sie sich derzeit bei 1 befinden und auf 3 klicken, lautet der Pfad 1-2-3. Nach dem Testen auf einer realen Maschine wird direkt zu 3 gesprungen, ohne dass das Erlebnis beeinträchtigt wird.

// *******************************Navigationsleiste wählt aus, um die ID und die Position der Navigationsleiste abzurufen**************************************
 tabSelect(e) {
 console.log("Ergebnis:", e);
 //Newsdatenbank betreiben var cur = e.currentTarget.dataset.id;
 //Tabulatoroption zentriert this.setData({
  // Die ID jedes Tabs
  TabCur: e.currentTarget.dataset.id,
  
  //Adaptives Scrollen nach links: (e.currentTarget.dataset.id) * 60,
 })

 // Überprüfen Sie, ob die ID mit der ID des angeklickten Tabs übereinstimmt, if (this.data.currentTab == cur) {
  gibt false zurück;
 } anders {
  dies.setData({
  currentTab: aktuell
  })
 }
 Konsole.log(e.currentTarget.dataset.id);
 Konsole.log(diese.Daten.TabCur);
 console.log("horizontale Bildlaufleistenposition", this.data.scrollLeft);
 },
 switchTab(e) {
 konsole.log(e);
 var cur = e.detail.current;
 dies.setData({
  TabCur: aktuell,
  scrollLeft: aktuell * 60,
 });
 }

Damit ist dieser Artikel über den Implementierungscode der WeChat-Miniprogramm-Tab-Schiebeschaltfunktion abgeschlossen. Weitere relevante Inhalte zum Schiebeschaltinhalt für Miniprogramm-Tabs finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass alle 123WORDPRESS.COM in Zukunft unterstützen werden!

Das könnte Sie auch interessieren:
  • Durch das Wechseln der Registerkarten im WeChat-Applet kann die Navigationsleiste so verschoben werden, dass sie dem Scroll-Implementierungscode folgt.
  • Beispiel für eine benutzerdefinierte verschiebbare obere TabBar-Registerkarte des WeChat-Applets zum Erreichen einer Seitenwechselfunktion
  • 10 Codezeilen zum Implementieren des Schieberegisterwechsels im WeChat-Applet
  • Scroll-Tab des WeChat-Applets zum Umschalten nach links und rechts
  • Das WeChat-Applet hört auf Wischgesten zum Seitenwechsel
  • WeChat-Applet: Wischen Sie nach links und rechts, um die Seiten zu wechseln. Detaillierte Erklärung und Beispielcode

<<:  Zusammenfassung einiger wichtiger Punkte zu mysql init_connect

>>:  11 Linux-KDE-Anwendungen, die Sie nicht kannten

Artikel empfehlen

HTML-Grundlagen: Die grundlegende Struktur von HTML

Die Grundstruktur von HTML-Hypertextdokumenten bes...

Analyse des GTK-Treeview-Prinzips und der Verwendung

Die GtkTreeView-Komponente ist eine erweiterte Ko...

Klasse in Front-End-JavaScript

Inhaltsverzeichnis 1. Klasse 1.1 Konstruktor() 1....

JS+Canvas zeichnet ein Glücksrad

In diesem Artikel wird der spezifische Code der J...

So leiten Sie eine URL mit Nginx Rewrite um

Ich muss in letzter Zeit bei der Arbeit oft die N...

Eine kurze Erläuterung der Rolle und Funktionsweise von Schlüsseln in Vue3

Welche Funktion hat dieses Schlüsselattribut? Sch...

JavaScript-Simulationsrechner

In diesem Artikel wird der spezifische Code des J...

Zusammenfassung der MySQL-Zeichensätze

Inhaltsverzeichnis Zeichensatz Vergleichsregeln V...