Heim Web-Frontend js-Tutorial Das mobile Terminal vue2.0 implementiert Pull-Down-Aktualisierungs- und Pull-Up-Ladefunktionen

Das mobile Terminal vue2.0 implementiert Pull-Down-Aktualisierungs- und Pull-Up-Ladefunktionen

Apr 27, 2018 am 11:01 AM
runterfallen 刷新

Dieses Mal werde ich Ihnen die Pulldown-Aktualisierungs- und Pull-Up-Ladefunktionen auf dem mobilen Vue2.0-Terminal vorstellen. Was sind die Vorsichtsmaßnahmen für die Implementierung der Pulldown-Aktualisierung und des Pull-Ups? Laden Sie Funktionen auf dem mobilen Endgerät vue2.0 hoch. Das Folgende ist ein praktischer Fall, schauen wir uns das an.

Gehen Sie direkt zum Code, wenn Sie ihn nicht verstehen. Ich werde Ihnen unten erklären, wie Sie ihn verwenden.

<template lang="html">
 <p class="yo-scroll"
 :class="{&#39;down&#39;:(state===0),&#39;up&#39;:(state==1),refresh:(state===2),touch:touching}"
 @touchstart="touchStart($event)"
 @touchmove="touchMove($event)"
 @touchend="touchEnd($event)"
 @scroll="(onInfinite || infiniteLoading) ? onScroll($event) : undefined">
  <section class="inner" :style="{ transform: &#39;translate3d(0, &#39; + top + &#39;px, 0)&#39; }">
   <header class="pull-refresh">
    <slot name="pull-refresh">
      <span class="down-tip">下拉更新</span>
      <span class="up-tip">松开更新</span>
      <span class="refresh-tip">更新中</span>
    </slot>
   </header>
   <slot></slot>
   <footer class="load-more">
    <slot name="load-more">
     <span>加载中……</span>
    </slot>
   </footer>
  </section>
 </p>
</template>
<script>
export default {
 props: {
  offset: {
   type: Number,
   default: 40
  },
  enableInfinite: {
   type: Boolean,
   default: true
  },
  enableRefresh: {
   type: Boolean,
   default: true
  },
  onRefresh: {
   type: Function,
   default: undefined,
   required: false
  },
  onInfinite: {
   type: Function,
   default: undefined,
   require: false
  }
 },
 data() {
  return {
   top: 0,
   state: 0,
   startY: 0,
   touching: false,
   infiniteLoading: false
  }
 },
 methods: {
  touchStart(e) {
   this.startY = e.targetTouches[0].pageY
   this.startScroll = this.$el.scrollTop || 0
   this.touching = true
  },
  touchMove(e) {
   if (!this.enableRefresh || this.$el.scrollTop > 0 || !this.touching) {
    return
   }
   let diff = e.targetTouches[0].pageY - this.startY - this.startScroll
   if (diff > 0) e.preventDefault()
   this.top = Math.pow(diff, 0.8) + (this.state === 2 ? this.offset : 0)
   if (this.state === 2) { // in refreshing
    return
   }
   if (this.top >= this.offset) {
    this.state = 1
   } else {
    this.state = 0
   }
  },
  touchEnd(e) {
   if (!this.enableRefresh) return
   this.touching = false
   if (this.state === 2) { // in refreshing
    this.state = 2
    this.top = this.offset
    return
   }
   if (this.top >= this.offset) { // do refresh
    this.refresh()
   } else { // cancel refresh
    this.state = 0
    this.top = 0
   }
  },
  refresh() {
   this.state = 2
   this.top = this.offset
   this.onRefresh(this.refreshDone)
  },
  refreshDone() {
   this.state = 0
   this.top = 0
  },
  infinite() {
   this.infiniteLoading = true
   this.onInfinite(this.infiniteDone)
  },
  infiniteDone() {
   this.infiniteLoading = false
  },
  onScroll(e) {
   if (!this.enableInfinite || this.infiniteLoading) {
    return
   }
   let outerHeight = this.$el.clientHeight
   let innerHeight = this.$el.querySelector('.inner').clientHeight
   let scrollTop = this.$el.scrollTop
   let ptrHeight = this.onRefresh ? this.$el.querySelector('.pull-refresh').clientHeight : 0
   let infiniteHeight = this.$el.querySelector('.load-more').clientHeight
   let bottom = innerHeight - outerHeight - scrollTop - ptrHeight
   if (bottom < infiniteHeight) this.infinite()
  }
 }
}
</script>
<style>
.yo-scroll {
 position: absolute;
 top: 2.5rem;
 right: 0;
 bottom: 0;
 left: 0;
 overflow: auto;
 -webkit-overflow-scrolling: touch;
 background-color: #ddd
}
.yo-scroll .inner {
 position: absolute;
 top: -2rem;
 width: 100%;
 transition-duration: 300ms;
}
.yo-scroll .pull-refresh {
 position: relative;
 left: 0;
 top: 0;
 width: 100%;
 height: 2rem;
 display: flex;
 align-items: center;
 justify-content: center;
}
.yo-scroll.touch .inner {
 transition-duration: 0ms;
}
.yo-scroll.down .down-tip {
 display: block;
}
.yo-scroll.up .up-tip {
 display: block;
}
.yo-scroll.refresh .refresh-tip {
 display: block;
}
.yo-scroll .down-tip,
.yo-scroll .refresh-tip,
.yo-scroll .up-tip {
 display: none;
}
.yo-scroll .load-more {
 height: 3rem;
 display: flex;
 align-items: center;
 justify-content: center;
} 
</style>
Nach dem Login kopieren

Kopieren Sie die obige Komponente, speichern Sie sie als Komponente mit dem Suffix .vue, fügen Sie sie unter Ihre Komponente ein und führen Sie sie dann auf der Seite ein

Ich habe zitiert: Es gibt Kommentare, bitte hinterlassen Sie mir eine Nachricht, wenn Sie Fragen haben!

<template>
 <p>
    <v-scroll :on-refresh="onRefresh" :on-infinite="onInfinite">
    <ul>
     <li v-for="(item,index) in listdata" >{{item.name}}</li>
     <li v-for="(item,index) in downdata" >{{item.name}}</li>
    </ul>
  </v-scroll>
 </p>
</template>
<script>
import Scroll from './y-scroll/scroll';
export default{
 data () {
  return {
   counter : 1, //默认已经显示出15条数据 count等于一是让从16条开始加载
   num : 15, // 一次显示多少条
   pageStart : 0, // 开始页数
   pageEnd : 0, // 结束页数
   listdata: [], // 下拉更新数据存放数组
   downdata: [] // 上拉更多的数据存放数组
  }
 },
 mounted : function(){
   this.getList();
 },
 methods: {
  getList(){
    let vm = this;
     vm.$http.get('https://api.github.com/repos/typecho-fans/plugins/contents/').then((response) => {
          vm.listdata = response.data.slice(0,15);
         }, (response) => {
          console.log('error');
        });
  },
  onRefresh(done) {
       this.getList();
    
       done() // call done
   
  },
  onInfinite(done) {
       let vm = this;
       vm.$http.get('https://api.github.com/repos/typecho-fans/plugins/contents/').then((response) => {
         vm.counter++;
         vm.pageEnd = vm.num * vm.counter;
         vm.pageStart = vm.pageEnd - vm.num;
         let arr = response.data;
           let i = vm.pageStart;
           let end = vm.pageEnd;
           for(; i<end; i++){
            let obj ={};
            obj["name"] = arr[i].name;
            vm.downdata.push(obj);
             if((i + 1) >= response.data.length){
             this.$el.querySelector('.load-more').style.display = 'none';
             return;
            }
            }
         done() // call done
          }, (response) => {
          console.log('error');
        });
      }
 },
 components : {
'v-scroll': Scroll
 }
}
</script>
Nach dem Login kopieren

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website!

Empfohlene Lektüre:

Was Sie bei der Frontend-Entwicklung von Vue beachten müssen

Wie man es macht Anmeldekontrollfunktion in vue.js

Das obige ist der detaillierte Inhalt vonDas mobile Terminal vue2.0 implementiert Pull-Down-Aktualisierungs- und Pull-Up-Ladefunktionen. 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

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

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)

6 Möglichkeiten, Webseiten auf dem iPhone zu aktualisieren 6 Möglichkeiten, Webseiten auf dem iPhone zu aktualisieren Feb 05, 2024 pm 02:00 PM

Wenn Sie auf Ihrem iPhone im Internet surfen, werden die geladenen Inhalte vorübergehend gespeichert, solange die Browser-App geöffnet bleibt. Da die Website jedoch regelmäßig Inhalte aktualisiert, ist die Aktualisierung der Seite eine effektive Möglichkeit, alte Daten zu löschen und die neuesten veröffentlichten Inhalte anzuzeigen. So verfügen Sie immer über die neuesten Informationen und Erfahrungen. Wenn Sie die Seite auf dem iPhone aktualisieren möchten, erklärt Ihnen der folgende Beitrag alle Methoden. So aktualisieren Sie Webseiten in Safari [4 Methoden] Es gibt mehrere Methoden, um die Seiten zu aktualisieren, die Sie in der Safari-App auf dem iPhone anzeigen. Methode 1: Verwenden Sie die Schaltfläche „Aktualisieren“. Der einfachste Weg, eine in Safari geöffnete Seite zu aktualisieren, besteht darin, die Option „Aktualisieren“ in der Registerkartenleiste Ihres Browsers zu verwenden. Wenn Safa

Die F5-Aktualisierungstaste funktioniert unter Windows 11 nicht Die F5-Aktualisierungstaste funktioniert unter Windows 11 nicht Mar 14, 2024 pm 01:01 PM

Funktioniert die F5-Taste auf Ihrem Windows 11/10-PC nicht richtig? Die F5-Taste wird normalerweise verwendet, um den Desktop oder Explorer zu aktualisieren oder eine Webseite neu zu laden. Einige unserer Leser haben jedoch berichtet, dass die F5-Taste ihre Computer aktualisiert und nicht richtig funktioniert. Wie aktiviere ich die F5-Aktualisierung in Windows 11? Um Ihren Windows-PC zu aktualisieren, drücken Sie einfach die Taste F5. Auf einigen Laptops oder Desktops müssen Sie möglicherweise die Tastenkombination Fn+F5 drücken, um den Aktualisierungsvorgang abzuschließen. Warum funktioniert die F5-Aktualisierung nicht? Wenn das Drücken der F5-Taste Ihren Computer nicht aktualisiert oder Probleme unter Windows 11/10 auftreten, kann dies daran liegen, dass die Funktionstasten gesperrt sind. Weitere mögliche Ursachen sind die Tastatur oder die F5-Taste

Wie kann ich eine Webseite schnell aktualisieren? Wie kann ich eine Webseite schnell aktualisieren? Feb 18, 2024 pm 01:14 PM

Bei der täglichen Nutzung eines Netzwerks kommt es häufig zu Seitenaktualisierungen. Wenn wir eine Webseite besuchen, treten manchmal Probleme auf, z. B. wenn die Webseite nicht geladen wird oder nicht ordnungsgemäß angezeigt wird. Zu diesem Zeitpunkt entscheiden wir uns normalerweise dafür, die Seite zu aktualisieren, um das Problem zu lösen. Wie kann die Seite also schnell aktualisiert werden? Lassen Sie uns die Tastenkombinationen für die Seitenaktualisierung besprechen. Die Tastenkombination für die Seitenaktualisierung ist eine Methode zum schnellen Aktualisieren der aktuellen Webseite über Tastaturoperationen. In verschiedenen Betriebssystemen und Browsern können die Tastenkombinationen für die Seitenaktualisierung unterschiedlich sein. Im Folgenden verwenden wir das gebräuchliche W

Was soll ich tun, wenn der Wert verschwindet, nachdem die Reaktionsseite aktualisiert wurde? Was soll ich tun, wenn der Wert verschwindet, nachdem die Reaktionsseite aktualisiert wurde? Dec 29, 2022 am 11:11 AM

Die Lösung für das Verschwinden des Werts nach der Aktualisierung der Reaktionsseite: 1. Aktualisieren Sie die Seite und prüfen Sie, ob die Daten im Status gelöscht werden. 2. Verwenden Sie „const name = location.query.name; const id = location.query; .id;“-Methode Durch Hinzufügen von Parametern zum Sprunglink können Sie die Parameter übergeben und die Seite aktualisieren, ohne dass die Daten verloren gehen.

Was ist die Tastenkombination zum Aktualisieren der Tastatur? Was ist die Tastenkombination zum Aktualisieren der Tastatur? Feb 25, 2024 pm 10:38 PM

Was ist die Tastaturaktualisierungstaste? Mit der Entwicklung der Computertechnologie ist die Tastatur zu einem unverzichtbaren Gerät in unserer täglichen Arbeit und unserem Leben geworden. Die Funktion der Tastatur geht weit über die Eingabe von Text hinaus. Sie dient auch häufig der Bedienung verschiedener Funktionen des Computers und der Verbesserung unserer Arbeitseffizienz. Mithilfe der Tastaturkürzel können wir verschiedene Vorgänge schneller und bequemer ausführen. Bei der täglichen Nutzung von Computern kommt es häufig vor, dass wir die Seite aktualisieren müssen. Wenn wir eine Webseite öffnen oder Software ausführen, friert die Seite manchmal ein oder kann nicht geladen werden. Aktualisieren Sie die Seite zu diesem Zeitpunkt.

Wie verwende ich Routing, um Seitenaktualisierung und Cache-Steuerung in einem Vue-Projekt zu implementieren? Wie verwende ich Routing, um Seitenaktualisierung und Cache-Steuerung in einem Vue-Projekt zu implementieren? Jul 22, 2023 am 11:13 AM

Wie verwende ich Routing, um Seitenaktualisierung und Cache-Steuerung in einem Vue-Projekt zu implementieren? In der Vue-Projektentwicklung ist es eine sehr häufige Anforderung, Routing zur Implementierung der Seitenaktualisierung und Cache-Steuerung zu verwenden. In diesem Artikel wird erläutert, wie Sie mithilfe von Routing die Seitenaktualisierung und Cache-Steuerung in Vue-Projekten implementieren und entsprechende Codebeispiele angeben. Routing-Konfiguration Zunächst müssen Sie vue-router für die Routing-Konfiguration im Vue-Projekt verwenden. vue-router kann über npm installiert und in main.js eingeführt und konfiguriert werden. wichtig

So klicken Sie in Win11 mit der rechten Maustaste auf „Aktualisieren'. So klicken Sie in Win11 mit der rechten Maustaste auf „Aktualisieren'. Dec 28, 2023 pm 02:29 PM

Das Aktualisieren ist ein Vorgang, den wir bei der Verwendung von Computern häufig durchführen. Durch das Aktualisieren können wir unsere Einstellungen für Benutzeroberfläche, Anzeige, Symbole und andere Eigenschaften schnell anzeigen. Bei der Verwendung von win11 gibt es jedoch keine Aktualisierung. Dies liegt daran, dass win11 ein Menü hinzugefügt wurde, das eingegeben werden muss, bevor es aktualisiert werden kann. So klicken Sie in Win11 mit der rechten Maustaste auf „Aktualisieren“ 1. Im Win11-System wurde das Rechtsklick-Menü geändert und wir können „Aktualisieren“ nicht finden, wenn wir mit der rechten Maustaste auf eine leere Stelle klicken. 2. Stattdessen müssen wir unten im Rechtsklick-Menü „showmoreoptions“ finden. 3. Nach der Eingabe von „showmoreoptions“ finden Sie „refresh“. 4. Außerdem müssen wir zum Aktualisieren eigentlich keinen Rechtsklick verwenden

Was soll ich tun, wenn der Win10-Desktop beim Starten unendlich aktualisiert wird? Lösung für die unendliche Aktualisierung des Win10-Startdesktops Was soll ich tun, wenn der Win10-Desktop beim Starten unendlich aktualisiert wird? Lösung für die unendliche Aktualisierung des Win10-Startdesktops Jul 08, 2023 am 09:33 AM

Als einige Benutzer kürzlich das Win10-System verwendeten, stellten sie fest, dass der Desktop manchmal automatisch aktualisiert wurde, ohne anzuhalten, und dass er auch aktualisiert wurde, während wir Videos ansahen und Musik hörten, was die Benutzererfahrung stark beeinträchtigte Wenn der Computer eingeschaltet ist und das drahtlose Netzwerk aktualisiert wird, erfahren Sie im folgenden Editor, wie Sie mit der unendlichen Aktualisierung des Win10-Desktops umgehen, wenn dieser eingeschaltet ist. Was soll ich tun, wenn der Computer eingeschaltet und das drahtlose Netzwerk aktualisiert ist? 1. Nachdem wir den Desktop aufgerufen haben, klicken Sie mit der Maus auf das Menüleistensymbol. 2. Wählen Sie in der geöffneten Oberfläche [Ressourcenmanager] aus. 3. Nachdem Sie die Seite aufgerufen haben, klicken Sie auf [Windows Task-Manager] und wählen Sie [Task beenden]. 4. Kehren Sie anschließend zum Desktop zurück und klicken Sie mit der rechten Maustaste, um die Menüleiste auszuwählen. 5. Zu diesem Zeitpunkt klickt jeder auf [Glück]

See all articles