2012-10-30 8 views
1

내가 이상한 문제가 발생 값, 어쩌면 누군가가 도움이 될 수 있습니다. 사용자가 이미지를 클릭하면온 클릭이

<td><a href="#" onclick="Show(\'div1\');return false;"><img src="img1" onmouseout="Hide(\'div1\');"></a></td> 

가 숨겨진 DIV 페이지의 중앙에 표시하고 마우스를 이동하면 사라집니다 :로

이 페이지에 여러 IMG가 있으며, 각각 정의된다. 이 숨겨져 사업부 : 나는 아래로 스크롤 시작까지

<div id="div1" style="width:400px;height:220px;padding:8px;position:absolute;display:none;border:6px solid #CC6600;background-color:#FFDAB4"> 

모든 것이 잘 작동합니다. 일부 특정 위치 및 스크롤 끝에 숨겨진 div 나타나지 않습니다. 왜 그 이유를 이해할 수 있습니까?

function Show (div) 
{ 
    var winW=630,winH=460,t,l; 

    if (document.body && document.body.offsetWidth) { 
     winW = document.body.offsetWidth; 
     winH = document.body.offsetHeight; 
    } 

    if (document.compatMode=='CSS1Compat' && 
     document.documentElement && 
     document.documentElement.offsetWidth) { 
     winW = document.documentElement.offsetWidth; 
     winH = document.documentElement.offsetHeight; 
    } 

    if (window.innerWidth && window.innerHeight) { 
     winW = window.innerWidth; 
     winH = window.innerHeight; 
    } 

    var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop; 
    var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft; 

    t=winH/2-240/2+scrollTop; 
    l=winW/2-400/2+scrollLeft; 

    document.getElementById(div).style.top=t+"px"; 
    document.getElementById(div).style.left=l+"px"; 
    document.getElementById(div).style.display="block"; 
} 

function Hide(div) 
{ 
    document.getElementById(div).style.display="none"; 
} 

난 그냥이 아니라고 scrollTop 문제 깨달았 : 여기

자바 스크립트입니다. div 안의 앵커는 전체 div를 차지하지 않으며 하단 만 차지합니다. 이상하게도 img 전체에서 커서가 변경되고, onclick은 전체 img에서 호출되지만 숨겨진 div는 하단 부분을 클릭 할 때만 표시됩니다. 나는 어떤 시도도하지 않고 style = "display : block"을 시도했다. 필사적으로 스타일 = "불투명도 : 0.9"를 넣으면 효과가 있습니다! 유일한 문제는 숨겨진 div가 img 뒤에 표시된다는 것입니다 (img보다 낮은 z- 색인과 같습니다). 숨겨진 div는 위치이므로 절대 색인을 사용하지 않습니다. * 아직도 똑똑한 사람을 찾고 있습니다 !!!

+0

가능 사업부는 이미지에서 호버를 훔쳐, 표시에 마우스 오버를 얻을 수 있습니까? –

답변

0

는 자바 스크립트 솔루션을 시도합니다 한편 경우에 jQuery를 솔루션을

$(function() { 
    $('body').scrollTop(0); 
}); 

을 시도

document.body.scrollTop = document.documentElement.scrollTop = 0;