2012-05-15 4 views
0

특정 스크롤이 발생하면 고정 위치를 얻으려면 2div가 필요한 페이지가 있습니다. 내가 똑같은 div에 놓을 수 없기 때문에 문제는 각각에 대해 2 개의 다른 코드를 사용해야한다.두 개의 다른 div id에 대한 고정 위치

이것은 내가 사용하는 jquery 코드입니다.

<script> 
$(document).ready(function() { 
    if (window.XMLHttpRequest) { 
    window.onscroll = function() { 
     if ($('body').scrollTop() > 534 || $('html').scrollTop() > 534) { 
      if ($(window).height() > 20) { 
       $('#wrappernav').addClass('wrappernavstatic'); 
      } 
     } 
     else { 
      $('#wrappernav').removeClass('wrappernavstatic'); 
     } 
    }; 
    } 
}); 
나는 다른 사업부에 대한 있지만 250 픽셀 또 다른 하나를 추가해야합니다. 그러나 두 페이지를 같은 페이지에 넣으면 충돌이 발생하고 두 번째 페이지 만 첫 번째 세부 정보로 작업합니다.

<script> 
$(document).ready(function() { 
    if (window.XMLHttpRequest) { 
    window.onscroll = function() { 
     if ($('body').scrollTop() > 300 || $('html').scrollTop() > 300) { 
      if ($(window).height() > 20) { 
       $('#wrappernavfilter').addClass('wrappernavfilterstatic'); 
      } 
     } 
     else { 
      $('#wrappernavfilter').removeClass('wrappernavfilterstatic'); 
     } 
    }; 
    } 
}); 

어떻게 모두 활성화 할을 혼합 할 수 있습니다?

+0

두 함수를 window.onscroll에 할당하지 않았지만 두 함수를 병합하려 했습니까? n 본문을 하나의 함수로? – Matzi

+0

네, 저는 그것들을 함께 넣었지만 똑같은 것을 추가했습니다. 나는 불행히도 자바 스크립트에 정통하지 않습니다. –

답변

1

당신은 모두 핸들러를 바인딩 .scroll()를 사용할 수 있습니다

$(window).scroll(function() { 
    // ... 
}); 

보다는이 window.onscroll으로 단지 1에 한정되는 :

window.onscroll = function() { 
    // ... 
}; 

그래서, 1 조각에 대한 귀하의 질문에 :

<script> 
$(document).ready(function() { 
    if (window.XMLHttpRequest) { 
     $(window).scroll(function() { 
      if ($('body').scrollTop() > 534 || $('html').scrollTop() > 534) { 
       if ($(window).height() > 20) { 
        $('#wrappernav').addClass('wrappernavstatic'); 
       } 
      } 
      else { 
       $('#wrappernav').removeClass('wrappernavstatic'); 
      } 
     }); 
    } 
}); 
+0

자세히 설명 할 기회가 있으십니까? 나는 당신이 의미하는 바를 부분적으로 이해합니다. –

+0

제안을 사용하도록 코드를 업데이트했으며 현재 작동합니다. –

+0

작품 ... 고맙습니다. 정말 감사합니다. –

관련 문제