2013-09-05 4 views
-1

고정 메뉴 항목과 관련된 몇 가지 문제로 고민하고 있습니다. 나는 아직도 자바 스크립트에서 초보자라고 언급해야한다. 이 사이트에서 발견 한 답변 중 일부는 here인데, 다소 문제가 수정되었습니다.고정 메뉴 항목에서 바닥 글과 겹치지 않게하는 방법

`<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"> </script> 
<script> 
    function checkOffset() { 
    var a=$(document).scrollTop()+window.innerHeight; 
    var b=$('#footer').offset().top; 
    if (a<b) { 
     $('#menuC').css('bottom', '0px'); 
    } else { 
     $('#menuC').css('bottom', (0+(a-b))+'px'); 
    } 
    } 
    $(document).ready(checkOffset); 
    $(document).scroll(checkOffset); 
</script>` 

메뉴 바닥 글 전에 중지 : 여기 내가 사용하고 코드입니다. 내가 지금 가진 문제는 브라우저의 높이에 따라 메뉴 항목이 항상 같은 지점에있는 것은 아니라는 것입니다. 예 : 해상도가 1366 x 768 인 경우 위의 픽셀보다 해상도가 더 높거나 낮 으면 숫자를 변경해야 메뉴가 그대로 유지됩니다.

더 많은 내 요구에 맞는 또 다른 대답은 this이고 그에 기초하여 나는 fiddle을 만들었습니다. 그게 내가 내 사이트가 원하는 것처럼, 내가 단지 내가 포수에 대한 필요성이 왜 이해가 안돼요 필요한 변화를 만들기 위해 모든 것을 이해하지 못해 이후로 나를 위해 일하는 코드를 변경하지 못하게하고 싶다. divs 또는 js :

`if(isScrolledTo(sticky)) { 
    sticky.css('position','fixed'); 
    sticky.css('top','2px');` 

sticky.css가 전체 CSS 파일 인 경우 모든 항목 위치가 고정으로 변경되어야합니다.

누군가가이 문제를 해결하는 데 도움을 줄 수 있으면 감사히 생각합니다.

답변

0

innerHeight jQuery 함수에 누락()이 있다고 생각합니다. 예 :
var a=$(document).scrollTop()+window.innerHeight();

그래서 Windows의 높이를 감지 할 수 없습니다.

+0

innerHeight 다음에 add()를하면 바닥 글에 멈추지 않고 위치가 고정됩니다. – leftycool