したがって、ドキュメント/ウィンドウサイズに対するスクロールバーの位置を多かれ少なかれチェックするjsで書かれたコードのチャンクがあります。底に近い場合は、関数呼び出しがトリガーされます。
現在表示されているデータの下に余分なページ/データを実際にロードする関数のコーディングを開始するまで、すべてが順調でした。
追加データをロードする関数のこれまでの記述は次のとおりです。
var appendData = function () {
_loading(true);
spinner.spin(spinnerTarget);
FC.WebAPI.RouteTemplates.GetTemplates({ "criteria": _searchTerm(), "pageNumber": dataGridViewModel.currentPage(), "pageSize": dataGridViewModel.pageSize(), "filter": Filter.toODataString(filterViewModel.selectedFilters()), "orderBy": _getSortODataString() }).execute(function (response) {
_data.concat(response.Results);
spinner.stop();
_loading(false);
if (_searchTerm().trim() != "") {
setTimeout(function () {
var terms = _searchTerm().split();
for (var i = 0; i < terms.length; i++) {
$('.routedetails span').highlight(terms[i]);
}
}, 200);
}
}, function (fail) {
spinner.stop();
_loading(false);
});
}
これは、エンドレス スクロール機能を実装する前は単純な [次へ] ボタンとして使用されていました。新しいページをロードするのではなく、すべてを同じページに保持するために、
_data.concat(response.Results);
関数が呼び出されるたびに、多かれ少なかれ同じ位置を維持するのではなく、スクロールバーを画面の上部にジャンプするように見えます。なぜそれがアイデアなのかわかりませんか?