2016-10-17 23 views
0

私は単純なものが欠けているかもしれないと思う。角 - クリックした要素にスクロール

私はコンテナ要素を持っており、そのような子要素のNGリピート:

<div id="container"> 
    <div class="activity" ng-click="myFunc($element)"> 
    </div> 
</div> 

私があるために、クリックされた活動にコンテナをスクロールしたいどのような(コンテナがスクロール可能で、セットを持っています高さ)。

私はコンテナの上部からのアクティビティのオフセットを取得する$要素を使用してみました、その後、ちょうどjQuerysがそうのようなオフセットにスクロールする機能をアニメーション使用:

$("#container").animate({ scrollTop: theOffset, { duration: 'medium',easing:'swing' }); 

しかし、私はに思えるカント$ elemntの.offsetを使用してください...

ここには何が欠けていますか?

ありがとうございました.Gabi。

答えて

0

私は通常、AngularJS別にDOMを操作助言するものではありませだろうが、次のように、仕事にこれを取得する可能な方法は次のとおりです。

私は、クリックイベントからターゲット要素を取得するために$event$elementを変更:

<div id="container"> 
    <div class="activity" ng-click="myFunc($event)"> 
    </div> 
</div> 

javascriptの部分については、選択した要素のオフセットを取得すると、私たちが望む場所になります。

$scope.myFunc = function(theOffset){ 
    $("html, body").animate({ scrollTop: $(theOffset.target).offset().top, duration: 'medium',easing:'swing' }); 
}; 

私はそれがページ自体にアニメーション化されるように、というだけの容器よりも、html, body上にあるようにjqueryのセレクタを変更しなければなりませんでした。 AngularJSを使うと理想的には、このようにjquery DOM操作を直接行うのは避けてください。

関連する問題