Avatar billede taggaard Nybegynder
28. august 2003 - 13:22 Der er 1 kommentar

Korrekt visning af mouseover i frames

Min hjemmeside (taggaard.dk) er oprettet med frames, hvor menuen er placeret i venstre ramme og indholdet vises i hovedrammen.
Når man peger på et link til venstre ramme vises mouseover-teksten, men med den irriterende bivirkning, at den vises "under" hovedrammen, som om indholdet her har en højre prioritet.
Fænomenet kan ses på http://taggaard.dk

Jeg håber virkelig, at en eller anden kan gennemskue mit problem/spørgsmål og frembringe et brugbart svar.

De bedste hilsner
J. Taggaard


Sådan ser script, funktion og link ud:

Dette script er placeret i HEAD-sektionen:

<style type="text/css">
<!--

.tooltiptitle{COLOR: #FFFFFF; TEXT-DECORATION: none; CURSOR: Default; font-family: arial; font-weight: bold; font-size: 8pt}
.tooltipcontent{COLOR: #000000; TEXT-DECORATION: none; CURSOR: Default; font-family: arial; font-size: 8pt}

#ToolTip{position:absolute; width: 100px; top: 0px; left: 0px; z-index:4; visibility:hidden;}

-->
</style>
<script language = "javascript">
<!--

var ie = document.all ? 1 : 0
var ns = document.layers ? 1 : 0

if(ns){doc = "document."; sty = ""}
if(ie){doc = "document.all."; sty = ".style"}



var initialize = 0
var Ex, Ey, topColor, subColor, ContentInfo


if(ie){
Ex = "event.x"
Ey = "event.y"

topColor = "#1E5482"
subColor = "#98B5CF"
}

if(ns){
Ex = "e.pageX"
Ey = "e.pageY"
window.captureEvents(Event.MOUSEMOVE)
window.onmousemove=overhere

topColor = "#1E5482"
subColor = "#98B5CF"
}

function MoveToolTip(layerName, FromTop, FromLeft, e){
if(ie){eval(doc + layerName + sty + ".top = "  + (eval(FromTop) + document.body.scrollTop))}
if(ns){eval(doc + layerName + sty + ".top = "  +  eval(FromTop))}
eval(doc + layerName + sty + ".left = " + (eval(FromLeft) + 15))
}

function ReplaceContent(layerName){

if(ie){document.all[layerName].innerHTML = ContentInfo}

if(ns){

with(document.layers[layerName].document)
{
  open();
  write(ContentInfo);
  close();
}

}


}

function Activate(){initialize=1}
function deActivate(){initialize=0}

function overhere(e){
if(initialize){

MoveToolTip("ToolTip", Ey, Ex, e)
eval(doc + "ToolTip" + sty + ".visibility = 'visible'")
}

else{
MoveToolTip("ToolTip", 0, 0)
eval(doc + "ToolTip" + sty + ".visibility = 'hidden'")
}

}

function EnterContent(layerName, TTitle, TContent){

ContentInfo = '<table border="0" width="150" cellspacing="0" cellpadding="0">'+
'<tr><td width="100%" bgcolor="#000000">'+

'<table border="0" width="100%" cellspacing="1" cellpadding="0">'+
'<tr><td width="100%" bgcolor='+topColor+'>'+

'<table border="0" width="90%" cellspacing="0" cellpadding="0" align="center">'+
'<tr><td width="100%">'+

'<font class="tooltiptitle">&nbsp;'+TTitle+'</font>'+

'</td></tr>'+
'</table>'+

'</td></tr>'+

'<tr><td width="100%" bgcolor='+subColor+'>'+

'<table border="0" width="90%" cellpadding="0" cellspacing="1" align="center">'+

'<tr><td width="100%">'+

'<font class="tooltipcontent">'+TContent+'</font>'+

'</td></tr>'+
'</table>'+

'</td></tr>'+
'</table>'+

'</td></tr>'+
'</table>';

ReplaceContent(layerName)

}

//-->
</script>

I BODY-tagen har jeg placeret <body onmousemove="overhere()">

og selve linket er konstrueret sådan:

<a href="taggaard/taggaard.html" target="main" onMouseover="EnterContent('ToolTip','Slægtsforskning','Slægtsforskning er en spændende hobby - man ved aldrig, hvad man finder...'); Activate();" onMouseout="deActivate()">»Slægten</a><br>
Avatar billede jakoba Nybegynder
28. august 2003 - 13:36 #1
et lag kan pr definition ikke rage udover det vindue/ramme det er defineret i.

Det eneste du kan gøre er at vise den mouseover tekst i begge rammer, og så justere positionen af de 2 lag så det der ikke vises i den ene er præcis det der rager udover i den anden.

det er ikke så lidt svært at gøre det så det er godt i alle de forskellige browsere. Meget nemmere at lave mouseovers der garanteret ikke rager udover, eller siden uden rammer.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester