Visa ett inlägg
Oläst 2008-03-02, 16:14 #10
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Den osynliga div:en laddas vid laddning av sidan. Sen visas den genom att man kopplar ett script till eventet onmouseover för visning och onmouseout för att ta bort den igen. Till exempel genom att ändra z-index.

Positioneringen sker genom att man läser av musens position och där finns det lite att klura med emedan de olika webbläsarna har egna uppfattningar om hur musens positionen ska registreras.

Koden kan typ se ut så här för att fånga musens position:
// set dynamic coords
function get_mouse(e)
{
var x,y;

if(nav || n_6) x=e.pageX;
if(iex) x=event.x+document.body.scrollLeft;

if(nav || n_6) y=e.pageY;
if(iex)
{
y=event.y;
if (document.documentElement && !document.documentElement.scrollTop) y+=0;
else if (document.documentElement && document.documentElement.scrollTop) y+=document.documentElement.scrollTop;
else if (document.body && document.body.scrollTop) y += document.body.scrollTop;
}

if(iex || nav)
{
skin.top=y+yyy;
skin.left=x+Xoffset;
}

if(n_6)
{
skin.top=(y+yyy)+"px";
skin.left=x+Xoffset+"px";
}
nudge(x);
}

// avoid edge overflow
function nudge(x)
{
var extreme,overflow,temp;

// right
if(iex) extreme=(document.body.clientWidth-popwidth);
if(n_6 || nav) extreme=(window.innerWidth-popwidth);

if(parseInt(skin.left)>extreme)
{
overflow=parseInt(skin.left)-extreme;
temp=parseInt(skin.left);
temp-=overflow;
if(nav || iex) skin.left=temp;
if(n_6)skin.left=temp+"px";
}

// left
if(parseInt(skin.left)<1)
{
overflow=parseInt(skin.left)-1;
temp=parseInt(skin.left);
temp-=overflow;
if(nav || iex) skin.left=temp;
if(n_6)skin.left=temp+"px";
}
}
Magnus_A är inte uppkopplad   Svara med citatSvara med citat