0

私は iScroll を使用しており、.hidden クラスを追加/削除してロードする 3 つのページがあります。最初のページのコンテンツをスクロールしてビューを変更すると、次のビューがスクロールされて読み込まれ、コンテンツが失われます。

クリックしたときにスクロール可能なdivの一番上までスクロールするにはどうすればよいですか?

私は基本的に次のコードを使用してビューを制御しています。別々のページをロードすると別々のタブにロードされて遅くなるため、この方法を選択しました。

function show_info_page(){
$('div.info_page').removeClass('hidden');
$('div.main_page').addClass('hidden');
$('div.stats_page').addClass('hidden');
$('div.contact_page').addClass('hidden');
$('div.info').addClass('active');
$('div.stats').removeClass('active');
$('div.contact').removeClass('active');}
4

2 に答える 2

0

iScroll には、この問題に対処する 2 つの関数があります。

  • refresh()コンテンツが変更されたときに iScroll に通知するためのものです。ページを切り替えるときにこれを呼び出すと、iScroll が必要なことを正確に実行する可能性があります。

  • scrollTo(0, 0, 0)iScroll に、すぐに左上隅にスクロールするように明示的に指示します。refresh()スクロールバーの高さを更新するために呼び出す必要がありますが、refresh()単独では、iScroll は新しいコンテンツの上部ではなく下部にスクロールする可能性があります。

当然、iScroll オブジェクト (コンストラクターによって返された) でこれらの関数を両方とも呼び出す必要があります。

ソース: http://cubiq.org/iscroll-4

于 2012-06-03T22:01:56.090 に答える
0

で縦スクロールバーの位置、 でscrollTop()横スクロールバーの位置を設定できscrollLeft()ます。例:

$('div.info_page').scrollTop(0); // Scroll to top
于 2012-06-02T13:11:22.887 に答える