2012-02-09 5 views
0

WebSphere Portal 7의 PageBuilder2 (csa2.theme)를 기반으로 사용자 정의 테마를 개발 중입니다. JQuery 1.7.1을 사용하고 있습니다. 바닥 글이 뷰포트에있는 동안 바닥 글의 맨 위에있는 바닥 글 (ID는 div#footer)과 도움말 막대 (클래스는 div.footer.flotante)가 필요하지만 바닥 글이 보이지 않는 동안 바닥의 바닥에 떠 있어야합니다 뷰포트에서 ... 일종의 페이스 북의 새로운 타임 라인 툴바 (친구 추가 등) 또는 Mashable 소셜 위젯, 맨 아래부터 만. 내가 사용JQuery : WebSphere Portal 7 테마의 페이지 맨 아래에서 툴바 부동

$(window).scroll(function (event) { 
    var barra = $('div.footer.flotante'); 
    var offset = barra.offset(); 
    var bh = barra.height(); 
    var h = offset.top; 
    var wh = $(window).height(); 

    var dh = $(document).height(); 
    var y = $(this).scrollTop(); 
    var x = dh - y - wh; 
    var hf = $("div#footer").height(); 

    if (x > hf) { 
     barra.addClass('fixed'); 
    } else { 
     barra.removeClass('fixed'); 
    } 
}); 

이는 CSS 스타일 :

div.footer.flotante{ 
    background:url(../images/footerone.png) repeat-x; 
    width:100%; 
} 
div.footer.flotante.fixed{ 
    position: fixed; 
    bottom: 0px; 
    z-index: 1; 
} 

Scheme of what I want to do

다음은 내가 이것을 얻기 위해 JQuery와 함께 한 일의 조각입니다 그 코드 정적 콘텐츠 (따라서 dh 값이 일정한 html 페이지의 경우 내 도구 모음을 부동 있어요. 내 문제는이 테마 개발되고, 문서의 본문에 동적으로로드 된 콘텐츠가있을 것으로 예상됩니다 알 수없는 픽셀의 양을 dh 값을 증가. 이 시나리오에서 x 값의 계산은 dh의 초기 값을 가져 와서 위치가 잘못된 부동 도구 모음을 결과로 제공합니다.

  1. 콘텐츠를 렌더링 한 후에 어떻게 dh의 값을 다시 계산할 수 있습니까?
  2. offset().bottom이라는 속성이 없다는 점을 감안하면 내 도구 모음에 대한 offset().top 값을 계산하기 위해 일시적으로 "뒤집어서 뒤집은"방법이 있습니까? 따라서 dh의 최종 값을 알 필요가 없으십니까?
  3. 또 다른 제안을 보내시겠습니까?

미리 감사드립니다.

+0

문제의 원인을 찾았습니다. 부정적인 'bottom' 속성이있는 로고의 절대 위치 이미지 였으므로 바닥 글 아래에 추가로 수직 간격을 만들고'dh'값을 늘립니다. –

+1

답변으로 추가 한 다음 올바른 것으로 선택하십시오. 그런 식으로 계정을 개선하십시오. – Will

+0

고맙습니다. @ 윌 –

답변

1

문제의 원인을 찾았습니다. 부정적인 바닥 속성을 갖는 로고의 절대 위치 이미지 였기 때문에 바닥 글 아래에 추가로 수직 간격을 만들고 dh 값을 증가 시켰습니다.

관련 문제