vue2.0移动端做出下拉刷新与上拉加载功能
这次给大家带来vue2.0移动端做出下拉刷新与上拉加载功能,vue2.0移动端做出下拉刷新与上拉加载功能的注意事项有哪些,下面就是实战案例,一起来看一下。
直接上代码,不懂的多看几遍,下面我换会告诉大家如何使用。
<template lang="html"> <p class="yo-scroll" :class="{'down':(state===0),'up':(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: 'translate3d(0, ' + top + 'px, 0)' }"> <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>
把上面组件拷贝一下,存成后缀是.vue的组件放到你的component下, 然后引入到页面 , 下面是我引用的demo
上代码: 里面有注释哦,有问题给我留言!
<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>
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Atas ialah kandungan terperinci vue2.0移动端做出下拉刷新与上拉加载功能. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Apabila anda menyemak imbas web pada iPhone anda, kandungan yang dimuatkan disimpan buat sementara waktu selagi apl penyemak imbas kekal terbuka. Walau bagaimanapun, tapak web mengemas kini kandungan dengan kerap, jadi menyegarkan halaman adalah cara yang berkesan untuk mengosongkan data lama dan melihat kandungan yang diterbitkan terkini. Dengan cara ini, anda sentiasa mendapat maklumat dan pengalaman terkini. Jika anda ingin memuat semula halaman pada iPhone, siaran berikut akan menerangkan kepada anda semua kaedah. Cara Muat Semula Halaman Web pada Safari [4 Kaedah] Terdapat beberapa kaedah untuk memuat semula halaman yang anda lihat pada Apl Safari pada iPhone. Kaedah 1: Gunakan Butang Muat Semula Cara paling mudah untuk memuat semula halaman yang telah anda buka di Safari ialah menggunakan pilihan Muat Semula pada bar tab penyemak imbas anda. Jika Safa

Adakah kunci F5 tidak berfungsi dengan betul pada PC Windows 11/10 anda? Kekunci F5 biasanya digunakan untuk menyegarkan desktop atau penjelajah atau memuat semula halaman web. Walau bagaimanapun, sesetengah pembaca kami telah melaporkan bahawa kekunci F5 sedang menyegarkan komputer mereka dan tidak berfungsi dengan betul. Bagaimana untuk mendayakan penyegaran F5 dalam Windows 11? Untuk menyegarkan semula PC Windows anda, hanya tekan kekunci F5. Pada sesetengah komputer riba atau desktop, anda mungkin perlu menekan kombinasi kekunci Fn+F5 untuk menyelesaikan operasi muat semula. Mengapa penyegaran F5 tidak berfungsi? Jika menekan kekunci F5 gagal menyegarkan semula komputer anda atau anda mengalami masalah pada Windows 11/10, ia mungkin disebabkan oleh kekunci fungsi yang dikunci. Punca lain yang berpotensi termasuk papan kekunci atau kekunci F5

Penyegaran halaman adalah perkara biasa dalam penggunaan rangkaian harian kami Apabila kami melawat halaman web, kadangkala kami menghadapi beberapa masalah, seperti halaman web tidak dimuatkan atau dipaparkan secara tidak normal, dsb. Pada masa ini, kami biasanya memilih untuk memuat semula halaman untuk menyelesaikan masalah, jadi bagaimana untuk memuat semula halaman dengan cepat? Mari kita bincangkan kekunci pintasan untuk muat semula halaman. Kekunci pintasan muat semula halaman ialah kaedah untuk memuat semula halaman web semasa dengan pantas melalui operasi papan kekunci. Dalam sistem pengendalian dan penyemak imbas yang berbeza, kekunci pintasan untuk muat semula halaman mungkin berbeza. Di bawah ini kami menggunakan W biasa

Penyelesaian kepada nilai yang hilang selepas halaman tindak balas dimuat semula: 1. Muat semula halaman dan semak sama ada data dalam keadaan akan dikosongkan; 2. Gunakan "const name = location.query.name; const id = location.query kaedah .id;" Dengan menambahkan parameter pada pautan lompat, anda boleh melepasi parameter dan memuat semula halaman tanpa kehilangan data.

Apakah kekunci pintasan segar semula papan kekunci Dengan perkembangan teknologi komputer, papan kekunci telah menjadi peranti yang sangat diperlukan dalam kerja dan kehidupan harian kita. Fungsi papan kekunci melampaui memasukkan teks Ia juga sering digunakan untuk mengendalikan pelbagai fungsi komputer dan meningkatkan kecekapan kerja kita. Pintasan papan kekunci membolehkan kami menyelesaikan pelbagai operasi dengan lebih cepat dan mudah. Dalam penggunaan komputer harian, kita sering menghadapi situasi di mana kita perlu memuat semula halaman. Apabila kami membuka halaman web atau menjalankan perisian, kadangkala halaman akan membeku atau gagal dimuatkan Pada masa ini, muat semula halaman.

Bagaimana untuk menggunakan penghalaan untuk melaksanakan penyegaran halaman dan kawalan cache dalam projek Vue? Dalam pembangunan projek Vue, adalah keperluan yang sangat biasa untuk menggunakan penghalaan untuk melaksanakan penyegaran halaman dan kawalan cache. Artikel ini akan memperkenalkan cara menggunakan penghalaan dalam projek Vue untuk melaksanakan penyegaran halaman dan kawalan cache serta memberikan contoh kod yang sepadan. Konfigurasi penghalaan Pertama, anda perlu menggunakan vue-router untuk konfigurasi penghalaan dalam projek Vue. vue-router boleh dipasang melalui npm dan diperkenalkan serta dikonfigurasikan dalam main.js. impor

Penyegaran adalah operasi yang sering kami lakukan apabila menggunakan komputer Penyegaran boleh memaparkan tetapan kami dengan cepat untuk antara muka, paparan, ikon dan sifat-sifat lain, bagaimanapun, ramai rakan mendapati tiada penyegaran dalam menu klik kanan apabila menggunakan win11. ini kerana menu win11 A telah ditambah, yang perlu dimasukkan sebelum boleh dimuat semula. Cara klik kanan muat semula dalam win11 1. Dalam sistem win11, menu klik kanan telah diubah, dan kami tidak akan dapat mencari muat semula apabila kami klik kanan pada ruang kosong. 2. Sebaliknya, kita perlu mencari "showmoreoptions" di bahagian bawah menu klik kanan 3. Selepas memasukkan "showmoreoptions", anda boleh mencari muat semula. 4. Selain itu, kita sebenarnya tidak perlu menggunakan klik kanan untuk menyegarkan semula

Baru-baru ini, apabila sesetengah pengguna menggunakan sistem Win10, mereka mendapati bahawa kadangkala desktop akan dimuat semula secara automatik tanpa berhenti, dan ia juga akan dimuat semula semasa kami menonton video dan mendengar muzik, yang sangat mempengaruhi pengalaman pengguna apabila komputer dihidupkan dan rangkaian wayarles disegarkan semula? Apakah yang perlu saya lakukan jika komputer dihidupkan dan rangkaian wayarles dimuat semula? 1. Selepas kita memasuki desktop, klik ikon bar menu dengan tetikus. 2. Pilih [Pengurus Sumber] dalam antara muka yang dibuka. 3. Selepas memasuki halaman, klik [Windows Task Manager] dan pilih [End Task]. 4. Selepas meneruskan, kembali ke desktop dan klik kanan tetikus untuk memilih bar menu. 5. Pada masa ini, semua orang mengklik [nasib]
