AngularJS でのアンカー ハッシュ リンク: $anchorScroll() の能力を明らかにする
AngularJS でアンカー ハッシュ リンクを処理すると、ナビゲーション時に問題が発生する可能性がありますページ内の特定の要素に適用されます。デフォルトの動作では、意図したターゲットにスクロールするのではなく、別のページに移動することがよくあります。
これを克服するために、AngularJS は $anchorScroll() と呼ばれる堅牢なソリューションを提供します。このコントローラーは、$location.hash() で見つかった一致する ID を持つ要素までページをスクロールする簡単な方法を提供します。
$anchorScroll() の使用方法
app.controller('TestCtrl', function($scope, $location, $anchorScroll) { $scope.scrollTo = function(id) { $location.hash(id); $anchorScroll(); } }); <a ng-click="scrollTo('foo')">Foo</a> <div id="foo">Here you are</div>
ルーティングとの統合
AngularJS ルーティングを使用する場合、$anchorScroll を活用できます。 () を使用すると、ルート変更後に正しい要素に自動的にスクロールします。
app.run(function($rootScope, $location, $anchorScroll, $routeParams) { $rootScope.$on('$routeChangeSuccess', function(newRoute, oldRoute) { $location.hash($routeParams.scrollTo); $anchorScroll(); }); });
このシナリオのリンクには、#/routepath?scrollTo=id 構文を含める必要があります。
より簡単なアプローチ
より簡潔な解決策としては、次の形式でリンクを配置するだけです:
<a href="#/test#foo">Test/Foo</a>
そして、次のコードを app.run() 関数に追加します。
app.run(function($rootScope, $location, $anchorScroll) { $rootScope.$on('$routeChangeSuccess', function(newRoute, oldRoute) { if($location.hash()) $anchorScroll(); }); });
これらの手法を実装すると、AngularJS でアンカー ハッシュ リンクを効果的に処理でき、ユーザーが Web アプリケーション内でスムーズに移動できるようになります。
以上がAngularJS $anchorScroll() はアンカー ハッシュ リンクの課題をどのように解決できるでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。