2012-04-27 1 views
0

페이지의 맨 아래에 DIV를 표시합니다jQuery를 fadIn 내가 수동으로 라이트 박스를 만드는 디버그에 몇 가지 코드가 IE8

$('.contact').click(function() { 

      $('html').css('overflow-y', 'hidden'); 

      $('<div class="overlay"></div>') 
       .css('top', $(document).scrollTop()) 
       .css('opacity', '0') 
       .animate({ 'opacity': '0.5' }, 0) 
       .appendTo('body'); 

      $('<div class="lightbox"></div>') 
       .hide() 
       .appendTo('body'); 

$('.lightbox').load(function() { 
      showRecaptcha('recaptcha_div'); 
     }); 
     var top = ($(window).height() - $('.lightbox').height())/2; 
     var left = ($(window).width() - $('.lightbox').width())/2; 
     $('.lightbox').css({ 
      'top': top + $(document).scrollTop(), 
      'left': left, 
      'zIndex':'2000' 
     }).fadeIn(0); 

     return false; 
    }); 

라이트 박스는 현재이 페이지를 확대하거나 축소하면 당신은 그것을 볼 수있는 오프 스크린이 나타납니다 왼쪽 하단 모서리에 나가 앉아.

fadeIn(0)show()으로 변경하면 라이트 박스가 올바른 위치에 나타납니다.

누구도 이와 비슷한 문제가 있었습니까?

답변

1

IE에서 jQuery 오프셋 기능으로 위쪽 및 왼쪽 위치를 설정하려고 할 때 비슷한 문제가 발생했습니다. 나는 왼쪽 상단에서 시작 보장하기 위해 첫 번째를 실행하여 고정 :

$(".lightbox").offset({top: 0, left: 0}); 

또한 position: absolute; 또는 position: fixed; 있는지 확인하고 당신은 당신의 코드에서 fadeIn(0)을 typo'd있다.

+0

감사드립니다. 다른 사람이 비슷한 문제를 겪고 있음을 알았습니다. 오프셋을 재설정하면 불행하게도 이번에는 나에게 도움이되지 못했습니다. – JackalopeZero

+0

함수의 순서를 변경해 보았습니까? 먼저 fadeIn으로 설정 한 다음 CSS를 설정 했습니까? 이 기능이 작동하면 show() 해킹을하고 css를 설정 한 다음 hide(), fadeIn을하면 표시/숨기기가 눈에 띄지 않습니다. – Timm

+0

시도 할 또 한가지는 문제가 발생한 경우 상단 변수와 좌측 변수의 이름을 바꿀 수 있습니다. – Timm