Maison interface Web js tutoriel Le terminal mobile vue2.0 implémente les fonctions d'actualisation déroulante et de chargement pull-up

Le terminal mobile vue2.0 implémente les fonctions d'actualisation déroulante et de chargement pull-up

Apr 27, 2018 am 11:01 AM
dérouler 刷新

Cette fois, je vais vous présenter les fonctions d'actualisation déroulante et de chargement pull-up sur le terminal mobile vue2.0. Quelles sont les précautions sur la façon de mettre en œuvre l'actualisation déroulante et le pull-up. charger des fonctions sur le terminal mobile vue2.0 ? Ce qui suit est un cas pratique, jetons un oeil.

Allez directement au code. Si vous ne comprenez pas, lisez-le plusieurs fois, je vais vous expliquer comment l'utiliser ci-dessous.

<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>
Copier après la connexion

Copiez le composant ci-dessus, enregistrez-le en tant que composant avec le suffixe .vue et placez-le sous votre composant, puis introduisez-le dans la page. Voici le code sur la démo

<.> que j'ai cité : Il y a des notes à l'intérieur, n'hésitez pas à me laisser un message si vous avez des questions !

<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>
Copier après la connexion
Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

À quoi vous devez faire attention lors du développement front-end de Vue

Comment faire fonction de contrôle de connexion dans vue.js

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

6 façons d'actualiser les pages Web sur iPhone 6 façons d'actualiser les pages Web sur iPhone Feb 05, 2024 pm 02:00 PM

Lorsque vous naviguez sur le Web sur votre iPhone, le contenu chargé est temporairement stocké tant que l'application du navigateur reste ouverte. Cependant, le site Web met régulièrement à jour le contenu, donc actualiser la page est un moyen efficace d'effacer les anciennes données et de voir le dernier contenu publié. De cette façon, vous disposez toujours des dernières informations et expériences. Si vous souhaitez actualiser la page sur iPhone, l'article suivant vous expliquera toutes les méthodes. Comment actualiser les pages Web sur Safari [4 méthodes] Il existe plusieurs méthodes pour actualiser les pages que vous consultez sur l'application Safari sur iPhone. Méthode 1 : utiliser le bouton Actualiser Le moyen le plus simple d'actualiser une page ouverte sur Safari consiste à utiliser l'option Actualiser dans la barre d'onglets de votre navigateur. Si Safa

La touche d'actualisation F5 ne fonctionne pas sous Windows 11 La touche d'actualisation F5 ne fonctionne pas sous Windows 11 Mar 14, 2024 pm 01:01 PM

La touche F5 ne fonctionne pas correctement sur votre PC Windows 11/10 ? La touche F5 est généralement utilisée pour actualiser le bureau ou l'explorateur ou recharger une page Web. Cependant, certains de nos lecteurs ont signalé que la touche F5 actualisait leur ordinateur et ne fonctionnait pas correctement. Comment activer l’actualisation F5 dans Windows 11 ? Pour actualiser votre PC Windows, appuyez simplement sur la touche F5. Sur certains ordinateurs portables ou de bureau, vous devrez peut-être appuyer sur la combinaison de touches Fn+F5 pour terminer l'opération d'actualisation. Pourquoi l’actualisation F5 ne fonctionne-t-elle pas ? Si l'appui sur la touche F5 ne parvient pas à actualiser votre ordinateur ou si vous rencontrez des problèmes sous Windows 11/10, cela peut être dû au verrouillage des touches de fonction. D'autres causes potentielles incluent le clavier ou la touche F5

Comment actualiser rapidement une page Web ? Comment actualiser rapidement une page Web ? Feb 18, 2024 pm 01:14 PM

L'actualisation des pages est très courante dans notre utilisation quotidienne du réseau. Lorsque nous visitons une page Web, nous rencontrons parfois certains problèmes, comme la page Web qui ne se charge pas ou ne s'affiche pas anormalement, etc. À ce stade, nous choisissons généralement d'actualiser la page pour résoudre le problème, alors comment actualiser la page rapidement ? Discutons des touches de raccourci pour l'actualisation de la page. La touche de raccourci d'actualisation de page est une méthode permettant d'actualiser rapidement la page Web actuelle via des opérations au clavier. Dans différents systèmes d'exploitation et navigateurs, les touches de raccourci pour l'actualisation de la page peuvent être différentes. Ci-dessous, nous utilisons le W commun

Que dois-je faire si la valeur disparaît après l'actualisation de la page de réaction ? Que dois-je faire si la valeur disparaît après l'actualisation de la page de réaction ? Dec 29, 2022 am 11:11 AM

La solution à la disparition de la valeur après l'actualisation de la page de réaction : 1. Actualisez la page et vérifiez si les données de l'état seront effacées ; 2. Utilisez le "const name = location.query.name; const id = location.query" .id;" En ajoutant des paramètres au lien de saut, vous pouvez transmettre les paramètres et actualiser la page sans perdre les données.

Qu'est-ce que la touche de raccourci d'actualisation du clavier ? Qu'est-ce que la touche de raccourci d'actualisation du clavier ? Feb 25, 2024 pm 10:38 PM

Quelle est la touche de raccourci d'actualisation du clavier ? Avec le développement de la technologie informatique, le clavier est devenu un appareil indispensable dans notre travail et notre vie quotidienne. La fonction du clavier va bien au-delà de la saisie de texte. Il est également souvent utilisé pour faire fonctionner diverses fonctions de l'ordinateur et améliorer notre efficacité au travail. Les raccourcis clavier nous permettent d'effectuer diverses opérations plus rapidement et plus facilement. Dans l'utilisation quotidienne des ordinateurs, nous rencontrons souvent des situations où nous devons actualiser la page. Lorsque nous ouvrons une page Web ou exécutons un logiciel, la page se bloque parfois ou ne parvient pas à se charger. À ce stade, actualisez la page.

Comment utiliser le routage pour implémenter l'actualisation des pages et le contrôle du cache dans un projet Vue ? Comment utiliser le routage pour implémenter l'actualisation des pages et le contrôle du cache dans un projet Vue ? Jul 22, 2023 am 11:13 AM

Comment utiliser le routage pour implémenter l'actualisation des pages et le contrôle du cache dans un projet Vue ? Dans le développement du projet Vue, il est très courant d'utiliser le routage pour implémenter l'actualisation des pages et le contrôle du cache. Cet article expliquera comment utiliser le routage pour implémenter l'actualisation des pages et le contrôle du cache dans les projets Vue, et donnera des exemples de code correspondants. Configuration du routage Tout d'abord, vous devez utiliser vue-router pour la configuration du routage dans le projet Vue. vue-router peut être installé via npm et introduit et configuré dans main.js. importer

Comment faire un clic droit sur Actualiser dans Win11 Comment faire un clic droit sur Actualiser dans Win11 Dec 28, 2023 pm 02:29 PM

L'actualisation est une opération que nous effectuons souvent lorsque nous utilisons des ordinateurs. L'actualisation peut afficher rapidement nos paramètres d'interface, d'affichage, d'icônes et d'autres propriétés. Cependant, de nombreux amis constatent qu'il n'y a pas d'actualisation dans le menu contextuel lors de l'utilisation de Win11. c'est parce que win11 Un menu a été ajouté, qui doit être saisi avant de pouvoir être actualisé. Comment effectuer un clic droit sur l'actualisation dans Win11 1. Dans le système Win11, le menu contextuel a été modifié et nous ne pourrons pas trouver d'actualisation lorsque nous cliquons avec le bouton droit sur un espace vide. 2. Au lieu de cela, nous devons trouver « showmoreoptions » en bas du menu contextuel. 3. Après avoir entré « showmoreoptions », vous pouvez trouver Actualiser. 4. De plus, nous n’avons pas besoin d’utiliser le clic droit pour actualiser

Que dois-je faire si le bureau Win10 s'actualise à l'infini lorsque je le démarre ? Solution pour actualiser à l'infini le bureau de démarrage Win10 Que dois-je faire si le bureau Win10 s'actualise à l'infini lorsque je le démarre ? Solution pour actualiser à l'infini le bureau de démarrage Win10 Jul 08, 2023 am 09:33 AM

Récemment, lorsque certains utilisateurs utilisaient le système Win10, ils ont constaté que parfois le bureau était automatiquement actualisé sans s'arrêter, et qu'il s'actualisait également pendant que nous regardions des vidéos et écoutions de la musique, ce qui affectait grandement l'expérience utilisateur. lorsque l'ordinateur est allumé et que le réseau sans fil est actualisé ? L'éditeur ci-dessous vous expliquera comment gérer le rafraîchissement infini du bureau Win10 lorsqu'il est allumé. Que dois-je faire si l'ordinateur est allumé et que le réseau sans fil est actualisé ? 1. Après être entré sur le bureau, cliquez sur l'icône de la barre de menu avec la souris. 2. Sélectionnez [Resource Manager] dans l'interface ouverte. 3. Après avoir accédé à la page, cliquez sur [Gestionnaire des tâches Windows] et sélectionnez [Fin de tâche]. 4. Après avoir continué, revenez au bureau et cliquez avec le bouton droit de la souris pour sélectionner la barre de menu. 5. A ce moment, tout le monde clique sur [chance]

See all articles