2015-02-05 2 views
0

스크롤 할 때 div의 ID를 잡아서 누가 어떤 섹션으로 스크롤했는지 추적 할 수있는 GA 이벤트를 트리거 할 수 있습니다. 여기 내가 사용하고있어의 .js 코드 :스크롤하는 동안 div를 움켜 잡을 때 div id가 비어 있습니다.

function scrollDetect(){ 
     var triggerPoint= Math.round($(window).height()/2); 
      var sections = document.getElementsByClassName("section"); 
      var triggeredSectionArray = []; 
      for(var i = 0; i < sections.length; i++){ 
       triggeredSectionArray[i] = true; 
      } 

$(document).scroll(function(){ 
    for(var i = 0; i < sections.length; i++){ 
     if(($(sections[i]).offset().top-$(window).scrollTop()) < triggerPoint && triggeredSectionArray[i] != false){ 
      var tempElem = sections[i]; 
      alert(sections[i].id); 
      triggeredSectionArray[i] = false; 

     } 
    }}); 

} 

scrollDetect() 몸의 부하라고, 그리고 사업부의 상단이 트리거 포인트 지났 때 난 아직도 내가 무엇을 결정하고있어 (감지 그 트리거 포인트가 정확하게되기를 바란다.) 그러나 id 자체는 빈 문자열로 올라오고있다. div의 모든 ID는 태그에 명시 적으로 정의되어 있습니다. ID를 설정하려고하면 ID도 마찬가지로 설정됩니다. jQuery를 올바르게 윈도우의 높이를 계산하고이 시도 할 수 있도록 :

+0

을 그리고 HTML은 같다? – epascarello

+0

jsfiddle 정말 도움이 될 것입니다 –

+0

신경 쓰지 마, 알아 냈어. div가 중첩되었고 자식이 "section"이 아닌 id를가집니다. –

답변

0

문서 확인으로 시작

$(window).load(function() { 
    $(window).scroll(function(){ 
    var top = $(window).scrollTop(); 
    var bottom = top + $(window).height(); 

    $(".section").each(function() { 
     if ($(this).offset().top >= top && $(this).offset().top <= bottom) { 
     console.log($(this).attr('id')); //Change this to GA tasks 
     } 
    }); 
    }); 
}); 
관련 문제