0

Angular に固定のトップ メニューがありますが、(アプリ内で) ページを切り替えようとすると、ブラウザー ウィンドウが上にスクロールしません。

コントローラーでこれを実行しようとしました (このコードは、アプリ内でページを切り替えるたびに読み込まれます)。

$('body').scroll();
window.scrollTo(0, 0);
$("html, body").animate({ scrollTop: 0 }, 100);

どれも機能していません。

私が見逃しているトリックはありますか?

私もこれを試しました:

$location.hash('#top');
// call $anchorScroll()
$anchorScroll();

しかし、成功せずに

4

1 に答える 1

3

まず、DOM イベントをアタッチしたり、コントローラーから DOM を変更したりしないでください。そのためにディレクティブを使用できます。

ご質問のとおり、AngularJS には「$routeChangeSuccess」というイベントがあります。このイベントにハンドラーをアタッチし$scope.$on('$routeChangeSuccess', function () {...})、内部でスクロール コードを実行できます。

于 2013-11-04T23:20:02.617 に答える