1
我遇到了一個奇怪的問題,也許有人可以幫助。onclick無法使用一些scrollTop值
有在頁面上多張圖片,每一個被定義爲:
<td><a href="#" onclick="Show(\'div1\');return false;"><img src="img1" onmouseout="Hide(\'div1\');"></a></td>
當用戶點擊圖片,隱藏的div應該出現在頁面的中間,消失在鼠標移開。 這是隱藏的div:
<div id="div1" style="width:400px;height:220px;padding:8px;position:absolute;display:none;border:6px solid #CC6600;background-color:#FFDAB4">
一切正常,直到我開始向上和向下滾動。在某些特定位置和滾動結束時,隱藏的div不會出現。有誰明白爲什麼?
這裏的javascript:
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」沒有任何成功。絕望之餘,我把style =「opacity:0.9」,它確實有效!唯一的問題是隱藏的div顯示在img後面(比如z-index低於img)。我不使用z-index,因爲隱藏的div是位置:絕對。 *仍在尋找一些聰明的人!
是否有可能在div沾到出現懸停,從圖像偷懸停? –