コンテキスト: 左メニュー (ナビゲーター) と右パネル (コンテンツ) の div があります。ナビゲーターのすべてのアイテムは、右側のパネルのセクションの ID にリンクされています。
問題: ナビゲーション パネルからメニュー項目をクリックすると、右側のパネルを対応するセクションにスクロールしようとしています。
私はanchorScroll()とlocator.hash()関数でそれをやっています。動作しますが、ページ全体 (ナビゲーションとコンテンツ) をスクロールします。
2 つのコントローラーを作成しました。1 つは親 (ナビゲーターを含む) 用で、もう 1 つはコンテナー (スクロールしたいもの) 用です。メニューからアイテムをクリックすると、スコープ内の変数が変更されます。
次に、子スコープから、その変数を見て、スクロールを実行しています
html:
html:
<!-- Navigation Panel -->
<div id="helpNavigatorPanel">
<ul>
<li ng-repeat="(value, item) in list" ng-click="setCurrentItem (item.title)">
<a style="helpNavigationItems" href="#">{{item.title}}</a>
</li>
</ul>
</div>
<div id="helpContentPanel"ng-controller="contentHelpController" >
<div id="scrollablePanel">
<!-- List of help elements -->
<ul>
<li ng-repeat="some in list">
<div id="{{some.title}}" style="margin-top: 3px; padding: 10px; border: 1px solid lightGrey;">
...
</div>
</div>
</li>
</ul>
</div>
</div>
js:
スコープの親:
$scope.setCurrentItem = function (currentItemID){
$scope.currentItemID = currentItemID;
}
スコープの子:
$scope.$watch('currentItemID', function (divDestinyID) {
$location.hash(divDestinyID);
$anchorScroll();
});
問題は、ページ全体がスクロールされることです。
何か案が ?
ありがとうございました!