ホームページ  >  記事  >  ウェブフロントエンド  >  リフレッシュするプルアップとデータ関数を取得するプルダウンを実装するコード例

リフレッシュするプルアップとデータ関数を取得するプルダウンを実装するコード例

零下一度
零下一度オリジナル
2017-06-29 09:21:541500ブラウズ

実際のプロジェクト開発では次のコードを使用して、データ関数を取得するためのプルアップ リフレッシュとプルダウンを実装できます:

/*Slide up to startloading*/
/**
* @author wbr
* スライディングページングサービス
* iScroll.js (v4.2.5) に依存します
* @param create method:
* id: ページ div の ID と一致します
* pullUpFn: pull 後に実行されるロードアップアニメーションの終了 追加のコールバック関数、通常はリモートおよびデータ処理
* pullDownFn: プルダウンアニメーションの終了後に実行されるコールバック関数、通常はリモートおよびデータ処理
* destroy メソッド:
*スクローラー: create メソッドによって返される iScroll オブジェクト
* メソッドを無効にする: プルアップ ページングを停止します
* メソッドを有効にする: プルアップ ページングを再開します
**/
(function( window、未定義) {
'use strict';

var service = {};
service.$scrollPage = [
function() {
return {
create : function(id, pullUpFn, pullDownFn) {
var myScroll,
pullUpEl,
pullDownEl ,
firstScroll = true;

pullUpEl = document.getElementById('pullUp');

pullDownEl = document.getElementById('pullDown');

function pullUpAction() {
pullUpFn(function(isEnd) ) {
// バックグラウンド ページングが終了するかどうかに応じて、ここで TODO が変更されます
if (isEnd) {
// このコード行に注目してください: ユーザーが初めて選択した情報をロードできない場合、別の情報を選択することで通常どおりに使用できます。 このコード行を追加すると、読み込み関数が破棄され、データが正常に読み込めなくなります
// pullUpEl.className = 'nomore';
pullUpEl.querySelector('.pullUpLabel').innerHTML = 'これ以上データはありません';
}
});
}

function pullDownAction() {
if (pullDownFn) {
pullDownFn();
pullUpEl.className = '';
pullUpEl.querySelector('.pullUpLabel') .innerHTML = '';
}
}

myScroll = new iScroll(id, {
topOffset : 40,
useTransition : true,
onRefresh : function() {
if (pullUpEl.className.match('loading')) {
pullUpEl.className = '';
pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉追加ダウンロードさらに...';
}
if (pullDownEl.className.match("loading")) {
pullDownEl.className = '';
pullDownEl .querySelector('.pullDownLabel').innerHTML = '下拉刷新...';
}
},
onScrollMove : function() {
if (firstScroll) {
this.refresh();
firstScroll = false;
}
if (this.y pullUpEl.className = 'peak ';
pullUpEl.querySelector('.pullUpLabel').innerHTML = '松手刷新...';
} else if (this.y > (this.maxScrollY - 50) && this.y < (this.maxScrollY) + 100) && !pullUpEl.className.match('goon') && !pullUpEl.className.match('nomore')) {
pullUpEl.className = 'goon';
pullUpEl.querySelector('.pullUpLabel').innerHTML = '继续上拉...';
} else if (this.y >= 0) {
pullDownEl.className = "foot";
pullDownEl.querySelector('.pullDownLabel').innerHTML = '松手刷新. ..';
} else if (this.y pullDownEl.className = "goon";
pullDownEl.querySelector('.pullDownLabel').innerHTML = '继续下拉...';
}
},
onScrollEnd : function() {
if (pullDownEl.className.match("foot")) {
pullDownEl.className = "loading";
pullDownEl.querySelector( '.pullDownLabel').innerHTML = '加ダウンロード中...';
pullDownAction();
} else if (pullDownEl.className.match("goon")) {
pullDownEl.className = "";
pullDownEl.querySelector ('.pullDownLabel').innerHTML = '下拉刷新...';
}
if (pullUpEl.className.match('peak')) {
pullUpEl.className = 'loading';
pullUpEl.querySelector('. pullUpLabel').innerHTML = '加ダウンロード中...';
pullUpAction();
} else if (pullUpEl.className.match('goon')) {
pullUpEl.className = '';
pullUpEl.querySelector(' .pullUpLabel').innerHTML = '上拉加ダウンロードさらに...';
}
}
});
return myScroll;
},
// 上拉分页
disable : function() {
var pullUpEl = document.getElementById('pullUp');
//TODO 此处要重写,对功能暂無影响
pullUpEl.className = 'nomore';
},
//启用上拉分页
enable : function() {
var pullUpEl = document.getElementById('pullUp');
pullUpEl.className = '';
},
//销毁iScroll实例,页面会失去滚動效果
destroy : function(scroller) {
scroller.destroy( );
}
};
}];

vx.module('ibsapp.libraries').service(service);

})(window);

その後就是js中直接使用这个服务了,启動この服务代码:

$scope.scroll = $scrollPage.create("merchant-all", $scope.getMore, $scope.downRefresh);

merchant-allは识别页面中divのid

$scopeです。 getMore は上拉获取データベース メソッドです

$scope.downRefresh は下拉获取新しいメソッドです、特定の希望を追加するためのデータをここに書き込むだけで済みます

以上がリフレッシュするプルアップとデータ関数を取得するプルダウンを実装するコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。