2014-07-09 1 views
0

나는 내 페이지에 흩어져있는 클래스 .container가있는 div가 있습니다. .container로 스크롤했을 때 jquery로 애니메이션을 트리거하고 싶지만 그 div에만 애니메이션을 넣고 싶습니다.클래스가있는 jquery 웨이 포인트 사용

$('.container').waypoint(function(direction){ 
    $this = $(this); 
    $(function(){ 
     //$this here selects the last div with class .container 
    }); 
},{offset: 'bottom-in-view'}); 

스크롤 한 현재 div 만 어떻게 선택할 수 있습니까?

+0

다른 클래스를 추가 하시겠습니까? "$"(".waypoint")''' –

+0

div에 애니메이션 코드를 추가하려는 경우에 크리스토퍼 - 모든 div에 애니메이션이 필요합니다. 사용자가 실제로 스크롤 할 수 있도록 스크롤해야 할 때가 필요합니다. .windpoint를 scrolledTo 컨테이너에 추가한다는 의미 인 경우 여전히 현재 .container를 선택하는 방법을 알 수 없습니다. –

+0

Ahhh. 나는 조금 혼란 스러웠다. –

답변

1

편집

미안 해요, 난 당신을 오해. 아래 코드는 스크롤 이벤트를 통해 컨테이너 중 하나가 표시 될 때 감지 할 수 있도록합니다.

'use strict'; 

$(function() { 
    var containers = $('.container'); 

    function isScrolledIntoView(elem) { 
     var docViewTop = $(window).scrollTop(); 
     var docViewBottom = docViewTop + $(window).height(); 

     var elemTop = $(elem).offset().top; 
     var elemBottom = elemTop + $(elem).height(); 

     return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); 
    } 

    window.onscroll = function (event) { 
     for (var i = 0; i < containers.length; i++) { 
      var container = containers[i]; 
      if (isScrolledIntoView(container)) { 
       // animate as needed here 
       console.log('you can see' + container.innerHTML); 
      } 
     } 
    }; 
}); 

isScrolledIntoViewfunction는 here에서 해제 뻔뻔한했다.

+0

내 마우스가 브라우저의 제목에 표시 될 수 있습니다. 애니메이션이 나타나지 않습니다. 또한 모바일 장치에서도 애니메이션을 사용하고 싶습니다. –

+0

효과를 한 번만 실행하려면 몇 가지 수정이 필요하지만 모든 사람들이 아이디어를 얻었습니다. 감사! –

+0

손을 빌려서 기쁩니다! –