2016-03-23 8 views
2

私はui-routerのautoScrollを使用して、ページのロード/ルート変更時にdiv(ui-view)までスクロールします。現在のところそうです。 autoScrollをオフセットする方法はありますか?メニューの要素の上に100ピクセル以上置いておく必要があります。これをどのように解決するかについて混乱しています。オフセットui-router autoScroll

app.directive('scrollTop', function($uiViewScroll) { 

     var linker = function (scope, element, attr, $elm) { 
      $uiViewScroll(element); 
     }; 

     return { 
      restrict: 'A', 
      link: linker 
     } 
    }); 

HTML:

<ui-view [autoscroll="true"]/> 

答えて

0

自動スクロールディレクティブは、ビューが移入されたときに、ブラウザウィンドウのスクロール動作を設定することができます。

デフォルトでは、$ anchorScrollは、ui-routerのカスタムスクロールサービス$ uiViewScrollによってオーバーライドされます。このカスタムサービスでは、状態のアクティブ化中にui-view要素が読み込まれたときに、ui-view要素を表示するようにスクロールします。

デフォルトの$ uiViewScrollサービスをデコレートし、デフォルトの動作をオーバーライドしてください。

app.config(function ($provide) { 
$provide.decorator('$uiViewScroll', function ($delegate) { 
    return function (uiViewElement) { 
     // var top = uiViewElement.getBoundingClientRect().top; 
     // window.scrollTo(0, (top - 30)); 
     // Or some other custom behaviour... 
    }; 
    }); 
}); 

http://corpus.hubwiz.com/2/angularjs/22290570.html

を参照してください。
関連する問題