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 を付けてコンポーネントとして保存し、コンポーネントの下に配置して、ページにインポートします。引用したデモ
のコードは次のとおりです。ご質問がございましたら、メッセージを残してください。
<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 中国語 Web サイトの他の関連記事に注目してください。
推奨書籍:
以上がvue2.0 モバイル端末は、プルダウン リフレッシュおよびプルアップ ロード機能を実装します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









iPhone で Web を閲覧すると、ブラウザ アプリが開いている限り、読み込まれたコンテンツが一時的に保存されます。ただし、Web サイトはコンテンツを定期的に更新するため、古いデータを消去して最新の公開コンテンツを確認するには、ページを更新することが効果的な方法です。こうすることで、常に最新の情報と経験を得ることができます。 iPhone でページを更新したい場合は、次の投稿ですべての方法を説明します。 SafariでWebページを更新する方法【4つの方法】 iPhoneのSafariアプリで閲覧中のページを更新する方法はいくつかあります。方法 1: [更新] ボタンを使用する Safari で開いているページを更新する最も簡単な方法は、ブラウザのタブ バーにある [更新] オプションを使用することです。サファなら

Windows 11/10 PC では F5 キーが正しく機能しませんか? F5 キーは通常、デスクトップまたはエクスプローラーを更新したり、Web ページをリロードしたりするために使用されます。ただし、読者の中には、F5 キーがコンピュータを更新していて、正しく動作しないと報告している人もいます。 Windows 11 で F5 更新を有効にする方法は? Windows PC を更新するには、F5 キーを押すだけです。一部のラップトップまたはデスクトップでは、更新操作を完了するために Fn+F5 キーの組み合わせを押す必要がある場合があります。 F5 キーを押して更新しても機能しないのはなぜですか? F5 キーを押してもコンピューターを更新できない場合、または Windows 11/10 で問題が発生している場合は、ファンクション キーがロックされていることが原因である可能性があります。その他の考えられる原因には、キーボードまたは F5 キーが含まれます

ネットワークを日常的に使用する中でページの更新は頻繁に行われますが、Web ページにアクセスすると、Web ページが読み込まれない、表示が異常になるなどの問題が発生することがあります。現時点では、通常、問題を解決するためにページを更新することを選択しますが、ページを素早く更新するにはどうすればよいでしょうか?ページ更新のショートカット キーについて説明します。ページ更新ショートカットキーは、キーボード操作で現在のWebページを素早く更新する方法です。オペレーティング システムやブラウザが異なると、ページを更新するためのショートカット キーが異なる場合があります。以下では一般的な W を使用します。

反応ページが更新された後に値が消える問題の解決策: 1. ページを更新し、状態内のデータがクリアされるかどうかを確認します。 2. 「const name = location.query.name; const id = location.query」を使用します。 .id;」メソッド ジャンプリンクにパラメータを追加することで、データを失うことなくパラメータを渡してページを更新できます。

キーボード更新ショートカット キーとは何ですか? コンピューター技術の発展に伴い、キーボードは私たちの日常の仕事や生活に欠かせないデバイスになりました。キーボードの機能は文字を入力するだけでなく、コンピュータのさまざまな機能を操作したり、作業効率を向上させるためによく使用されます。キーボード ショートカットを使用すると、さまざまな操作をより迅速かつ便利に完了できます。コンピューターを日常的に使用していると、ページを更新する必要がある状況によく遭遇します。 Webページを開いたり、ソフトウェアを実行したりすると、ページがフリーズしたり、読み込めなくなったりすることがありますが、その場合はページを更新してください。

ルーティングを使用して Vue プロジェクトでページの更新とキャッシュ制御を実装するにはどうすればよいですか? Vue プロジェクト開発では、ルーティングを使用してページの更新とキャッシュ制御を実装することが非常に一般的な要件です。この記事では、ルーティングを使用して Vue プロジェクトでページ更新とキャッシュ制御を実装する方法を紹介し、対応するコード例を示します。ルーティング設定 まず、Vue プロジェクトでルーティング設定に vue-router を使用する必要があります。 vue-router は npm を通じてインストールでき、main.js に導入して設定できます。輸入する

更新は、コンピューターを使用するときによく実行される操作です。更新すると、インターフェイス、表示、アイコン、その他のプロパティの設定がすぐに表示されます。しかし、多くの友人は、win11 を使用している場合、右クリック メニューに更新がないことに気づきます。実際、これは、win11 メニューが追加されており、更新する前にメニューを入力する必要があるためです。 win11 での右クリック更新方法 1. win11 システムでは、右クリック メニューが変更され、空白スペースを右クリックしても更新を見つけることができなくなります。 2. 代わりに、右クリック メニューの下部にある "showmoreoptions" を見つける必要があります。 3. "showmoreoptions" を入力すると、[更新] が表示されます。 4. さらに、実際には右クリックを使用して更新する必要はありません。

最近、一部のユーザーが Win10 システムを使用しているときに、デスクトップが停止せずに自動的に更新されたり、ビデオを見たり音楽を聴いたりしているときにも更新され、ユーザー エクスペリエンスに大きな影響を与えることが判明しました。コンピューターの電源がオンになり、ワイヤレス ネットワークが更新されるとき? 以下のエディターは、Win10 デスクトップの電源がオンになったときに無限に更新される場合に対処する方法を示します。コンピューターの電源がオンになり、ワイヤレス ネットワークが更新された場合はどうすればよいですか? 1. デスクトップに入ったら、メニューバーのアイコンをマウスでクリックします。 2. 開いたインターフェースで[リソースマネージャー]を選択します。 3. ページに入ったら、[Windows タスク マネージャー] をクリックし、[タスクの終了] を選択します。 4. 続行後、デスクトップに戻り、マウスを右クリックしてメニュー バーを選択します。 5.この時、全員が【幸運】をクリック
