2010-10-13 5 views
0

У меня есть подсказка, которая над мышью открывается в верхнем левом углу страницы irrespectve of 'mouseover'. В случае IE8 это работает отлично и открывается чуть выше места, где находится мыши, но в Firefox не удается вычислить/интерпретировать значения.Всплывающая подсказка открывается в том же месте, независимо от области макета в Firefox

вот фрагмент кода для подсказке

function DoFlyOver() 
{ 
    if(ToClear != -1) window.clearTimeout(ToClear); 
    var thisForm = eval("document." + formName); 
    if (FlyOverArea == null) FlyOverArea = document.getElementById("FlyOverArea"); 

    if (FlyOverArea.firstChild!==null) 
     FlyOverArea.removeChild(FlyOverArea.firstChild); // remove all existing content 
     FlyOverArea.appendChild(document.createTextNode(FoText)); 

    FoLeft = $displayOptions.getFlyoverLeftOfCursor(); 
     FoTop = $displayOptions.getFlyoverTopOfCursor(); 
    FlyOverArea.style.left = Number(thisForm.mousex.value) + Number(thisForm.scrollx.value) - Number(FoLeft); 
    FlyOverArea.style.top = Number(thisForm.mousey.value) + Number(thisForm.scrolly.value) - Number(FoTop); 
    var maxX = (window.screen.width * $displayOptions.getFlyoverThreshold())/100; 

// If the mouse is at the extreme right corner the max threshold should the tooltip be //placed. 
    if(FlyOverArea.style.posLeft > (window.screen.width - maxX)){ 

    FlyOverArea.style.left = window.screen.width - maxX; 
    } 
    FlyOverArea.style.display = ""; 
    ToClear = setTimeout("ClearFlyOver()", $displayOptions.getFlyoverVisibleTimeWithCursor(), "JAVASCRIPT");//set timeout 
} 

    <DIV ID=FlyOverArea CLASS="FO" STYLE="display: none"> 
    </DIV> 

Я подозреваю, что его Жека style.top и style.left и попытался с style.pixelLeft,style.posleft тоже, но не использовать

+0

Вы отлажена код и посмотрел на то, что ценности и как они отличаются в разных браузерах? Не знаете, почему вы сохраняете значения для позиции мыши в поле формы. – epascarello

+0

Да, я использовал firebug, но не сильно использовал – GustyWind

ответ

0

Ха Я нашел ответ, Mozilla не распознает номера, но если вы append with px он установит положение. Например

var theLeft=Number(thisForm.mousex.value) + Number(thisForm.scrollx.value) - Number(FoLeft); 
FlyOverArea.style.left = theLeft+"px" 

Это решило проблему

Смежные вопросы