2016-10-17 10 views
0

나는 간단한 무엇인가 놓칠지도 모른다라고 생각한다.angular - 클릭 한 요소로 스크롤

는 내가 컨테이너 요소, 그래서 같은 자식 요소에 NG 반복이 : 내가 용기를 스크롤입니다 (클릭 된 활동에 컨테이너를 스크롤되는 싶은 세트가 무엇

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

신장).

는 그냥 컨테이너의 상단에서 활동의 오프셋 (offset) 한 다음 바로 jQuerys 오프셋 그래서 등에 스크롤 기능을 애니메이션을 사용하여 얻을 $ 요소를 사용하여 시도 :

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

그러나 나는 것 같다 캔트 $ elemnt에서 .offset을 사용하십시오 ...

무엇이 여기에 있습니까?

미리 감사드립니다. Gabi.

내가 클릭 이벤트에서 대상 요소를 얻기 위해 $event으로 $element 변경 다음과 같이

답변

0

내가 일반적으로 AngularJS와 별도로 DOM을 조작 조언하지 것이지만, 일이 점점의 가능한 방법입니다 :

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

자바 스크립트 부분에서 선택한 요소의 오프셋을 가져 오면 원하는 위치가 표시됩니다.

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

나는 오히려 단지 컨테이너보다, 페이지 자체에 애니메이션되도록 html, body에있을 JQuery와 선택기를 변경했다. AngularJS를 사용하면 jquery DOM 조작을 직접하지 않아야합니다.

관련 문제