Avatar billede nemlig Professor
15. november 2007 - 10:58 Der er 23 kommentarer og
1 løsning

pop-up vindue ved Mouse-over

Hej alle.
Jeg har en indtastningsform, hvor jeg ud for hvert input-felt viser et spørgsmåls-ikon. Når musen flyttes hen over ikonet, vises et lille vindue med en kort vejledning. Jeg anvender "alt=...." funktionen, men vinduet forsvinder efter 4-5 sekunder.
Jeg har fundet nogle alternativer, men problemet er, at disse alternativer "arbejder sammen med" tabulator-tasten.
Jeg vil jo gerne undgå, at spørgsmålstegnet markeres ved brug af tabulator, idet tabulator kun skal virke på indtastningsfelterne.
Fx. har www.totalkredit.dk løsningen. Kan ses under "beregninger" og "nyt lån".
Jeg har "lånt" lidt, men det driller. Håber på et linkt til et sted, hvor koden kan hentes.
Avatar billede jokkejensen Novice
15. november 2007 - 12:46 #1
Avatar billede nemlig Professor
15. november 2007 - 12:52 #2
Jeg anvender i forvejen tabindex. Tabindex bestemmer vel bare rækkefølgen. Når man er igennem de felter, der har defineret tabindex, forsættes til spørgsmålstegnene, og det vil jeg gerne undgå.
Derfor en løsning, hvor der ikke kan springes til ikonerne med tabulator.
De findes jo - fx. hos Totalkredit.
Avatar billede w13 Novice
15. november 2007 - 14:26 #3
Hvordan ser koden ud for dine spørgsmålstegn nu?

Det burde ikke give problemer, hvis det ikke var links.
Avatar billede nemlig Professor
15. november 2007 - 15:29 #4
Nej - det er ikke links. Jeg bruger "alt" funktionen, men problemet er at vinduet kun vises i 4-5 sekunder.
Hvis du/I vil se det, kan I kigge på http://www.kalendersystem.dk/kalender/index.php
Avatar billede w13 Novice
15. november 2007 - 17:42 #5
Nu kan jeg jo ikke logge på og jeg ser ingen spørgsmålstegn.. =)

Men lige nu har du jo ikke tab-problemet, og der er intet at gøre for at forlænge en "alt". Så jeg vil egentlig hellere prøve at løse dit tab-problem. Hvordan var koden til det?
Avatar billede nemlig Professor
15. november 2007 - 18:15 #6
w13: Jo tak. Du kan logge ind med "udlejer" og "9999". Vælg derefter "Opret aftale".
Jeg kan dog se, at det ikke er spørgsmålstegn, men i stedet et "i" ikon.

Eksempel fra koden: (hentet via "vis kilde")
<img src='gfx/info1.gif' alt='Angiv kontaktpersonen.....' style='cursor:help;'>&nbsp;&nbsp;<input type='text' id='myAddress1' tabindex='4' name='adresse1' value='' class=form size=40 onfocus="this.style.backgroundColor='#ffffcc';"  onblur="this.style.backgroundColor='#eeeee6';">
Avatar billede w13 Novice
15. november 2007 - 18:21 #7
Jep. Så ser jeg det. Men her er dit problem jo bare, at teksten forsvinder for hurtigt efter din mening? Alt-tekstens visningstid kan ikke forlænges.
Avatar billede nemlig Professor
15. november 2007 - 19:24 #8
Ja - det er præcis problemet.
Derfor søger jeg en løsning ala det Totalkredit anvender. Der findes mange løsninger på nettet, men alle dem jeg har set, virker som et link, hvor tabulatoren også springer til ikonet. Jeg ved godt, at jeg via tabindex kan sørge for, at tabulatoren virker til sidst på ikonerne, men når nu en løsning virker ala Totalkredits, vil jeg foretrække det.
Avatar billede w13 Novice
15. november 2007 - 19:28 #9
Det vil i mange tilfælde blive en rimelig omfattende løsning, der bl.a. kræver et script til at finde musens placering og placere hjælpeteksten i forhold til denne.
Og at skrive et sådan script vil være ret omfattende for mig lige nu.

Jeg er dog sikker på, det ikke behøver at være links. Hvis du finder et færdigt script, du kan li', skal jeg se, om jeg ikke kan skrive det lidt om, så tab er ligeglad med det.
Avatar billede nemlig Professor
15. november 2007 - 19:36 #10
Så siger jeg mange tak for tilbuddet. Jeg ser mig omkring og vender tilbage.
Avatar billede nemlig Professor
15. november 2007 - 23:11 #11
Nu har jeg næsten fået Totalkredit-løsningen til at virke. Men jeg kunne godt tænke mig en ramme hele vejen rundt og en anden skrifttype og -størrelse. Kan du hjælpe med det.
Se eksempel her: www.kalendersystem.dk/popup

Der er tale om 2 filer + grafikfilen.

Index.html

<head>
<SCRIPT type="text/JavaScript" src="bxphjaelp.js"></SCRIPT>
</head>
<body onload="popupInit();">
<table>
<tr>
<td><img style="border: 0px;" src="gfx/spg_3.gif" width="10" height="12" onmouseover="popup(1); this.style.cursor='pointer';" onmouseout="popout(1);" alt=""/>
<div style="position: absolute; background-color: Window;" id="divDescription"></div>
</td>
<td>Årstal1</td>
</tr>
</table>
</body>


bxphjaelp.js

/********************************************************************************
Copyright (C) 1999 Thomas Brattli
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts. This may be used freely as long as this msg is intact!
I will also appriciate any links you could give me.
********************************************************************************/
//Default browsercheck, added to all scripts!
function checkBrowser(){
    this.ver=navigator.appVersion
    this.dom=document.getElementById?1:0
    this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0;   
    this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0;
    this.ie4=(document.all && !this.dom)?1:0;
    //this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
    this.ns5=(this.dom && parseInt(this.ver) >= 5 && this.dom) ?1:0;
    this.ns4=(document.layers && !this.dom)?1:0;
    this.bw=(this.ie5 || this.ie4 || this.ns4 || this.ns5)
    return this
}
bw=new checkBrowser()

messages=new Array()

messages[1]="Lånets låntype. Er det et Flexlån, type F1 eller et rentetilpasningslån kaldes det \"Rentetilpasningslån med årlig refinansiering\""
messages[2]="7-cifret kode for hvilke obligationer lånet er udstedt i. Fremgår af terminsopkrævning eller årsopgørelse."
messages[3]="Årlig pålydende rente, som betales på lånet. For kontantlån kaldes den også kontantlånsrenten og er typisk højere end obligationsrenteprocenten. Fremgår af terminsopkrævningen/årsopgørelsen."
messages[4]="Seneste restgæld. For kontantlån kaldes denne også kontantrestgælden og er typisk lavere end obligationsrestgælden. Fremgår af terminsopkrævningen/årsopgørelsen."


fromX=-15
fromY=20

bxpFromX=20
bxpFromY=-10


//Makes crossbrowser object.
function makeObj(obj){                               
      this.css=bw.dom? document.getElementById(obj).style:bw.ie4?document.all[obj].style:bw.ns4?document.layers[obj]:0;   
      this.wref=bw.dom? document.getElementById(obj):bw.ie4?document.all[obj]:bw.ns4?document.layers[obj].document:0;       
    this.writeIt=b_writeIt;                                                               
    return this
}
function b_writeIt(text){if(bw.ns4){this.wref.write(text);this.wref.close()}
else this.wref.innerHTML=text}

//Capturing mousemove
var descx,descy;
function popmousemove(e){
if(bw.ns4 || bw.ns5){
    descx=e.pageX;
    descy=e.pageY
} else {
    descx=event.x;
    descy=event.y

}
//     old code -mdk
//    descx=bw.ns4?e.pageX:event.x; descy=bw.ns4?e.pageY:event.y
//    descx=bw.ns5?e.pageX:event.x;
//    descy=bw.ns5?e.pageY:event.y
    }

//Initiates page
var isLoaded;
function popupInit(){
    oDesc=new makeObj('divDescription')
    if(bw.ns4)document.captureEvents(Event.MOUSEMOVE)
    document.onmousemove=popmousemove;
    isLoaded=true;
}   
//Shows the messages
function popup(num){
    if(isLoaded){
    oDesc.writeIt('<div style="padding-top:1px; padding-left:1px; padding-bottom:1px;"><table cellspacing="0" cellpadding="0" border="0"  class="HelpBackground"><tr><td colspan="3" bgcolor="#061746"></td></tr><tr><td width="1" bgcolor="#061746"></td><td width="155" style="padding-top : 1px;padding-left : 1px; padding-right : 2px; padding-bottom : 1px;" class="HelpText">'+messages[num]+'<br></font></td><td width="1" bgcolor="#061746"></td></tr><tr><td colspan="3" bgcolor="#061746"></td></tr></table></div>')
    if(bw.ie5 || bw.ie6) descy=descy+document.body.scrollTop
    oDesc.css.left=descx+fromX; oDesc.css.top=descy+fromY
    oDesc.css.visibility='visible'
    }
}
// Shows the messages
function bxpup(num) {
    if(isLoaded) {
      oDesc.writeIt('<div style="padding-top:1px; padding-left:1px; padding-bottom:1px;"><table cellspacing="0" cellpadding="0" border="0"  class="HelpBackground"><tr><td colspan="3" bgcolor="#061746"></td></tr><tr><td width="1" bgcolor="#061746"></td><td width="155" style="padding-top : 1px;padding-left : 1px; padding-right : 2px; padding-bottom : 1px;" class="HelpText">'+ num +'<br></font></td><td width="1" bgcolor="#061746"></td></tr><tr><td colspan="3" bgcolor="#061746"></td></tr></table></div>')
      if(bw.ie5 || bw.ie6) {
        descy=descy + document.body.scrollTop;
      }

        oDesc.css.left=descx + bxpFromX;
        oDesc.css.top=descy + bxpFromY;
      oDesc.css.visibility='visible';
    }
}
//Hides it
function popout(num){
    if(isLoaded) oDesc.css.visibility='hidden'
}

//initiates page on pageload.
onload=popupInit;
Avatar billede nemlig Professor
15. november 2007 - 23:43 #12
Nu tror jeg sørme det kører. Jeg har lavet en class, hvor jeg har defineret Helpbackground. Så kan jeg styre tekst, farver og rammer. Og det fungerer.
Men jeg synes det er meget kode, jeg skal skrive hver gang, jeg skal vise et popupvindue. Koden er lige nu sådan her:

<img style="border: 0px;" src="gfx/spg_3.gif" width="10" height="12" onmouseover="popup(1); this.style.cursor='pointer';" onmouseout="popout(1);" alt=""/>
<div style="position: absolute; background-color: Window;" id="divDescription"></div>

Kan det gøres smartere/kortere???
Avatar billede w13 Novice
15. november 2007 - 23:49 #13
Jeg tror bare, følgende:
<div style="position: absolute; background-color: Window;" id="divDescription"></div>
skal være:
<div style="position: absolute; border:1px solid #000000; font-family:arial; background-color: Window;" id="divDescription"></div>
Avatar billede nemlig Professor
16. november 2007 - 10:48 #14
Jo, men da jeg har mange steder i programmet, hvor jeg gør brug af popupvinduet, har jeg et ønske om at begrænse koden mest muligt.
Kan man smide noget kode i en funktion eller noget andet. Jeg anvender php??
Avatar billede nemlig Professor
16. november 2007 - 13:51 #15
Dertil vil jeg også være interesseret i at gøre brug af en class, da jeg så kun skal rette ét sted, hvis jeg vil ændre skrifttype og baggrundsfarve.
Avatar billede w13 Novice
16. november 2007 - 14:02 #16
Det meste af den er så vidt jeg se i en funktion.
Kan du ikke bare bruge:

<img style="border: 0px;" src="gfx/spg_3.gif" width="10" height="12" onmouseover="popup(1); this.style.cursor='pointer';" onmouseout="popout(10);" alt=""/>

og så rette 10 til det nr., som infomeddelelsen har i koden?
Avatar billede nemlig Professor
16. november 2007 - 19:31 #17
Jo - det har ret.
w13 - tak for din hjælp og engagement. Sender du et svar.
Avatar billede w13 Novice
17. november 2007 - 17:25 #18
Det gør jeg da. =)
Avatar billede w13 Novice
17. november 2007 - 18:42 #19
Takker. =)
Avatar billede roenving Novice
19. november 2007 - 09:01 #20
-- men at sætte en cursor på mouseover er da noget vrøvl, for en cursor virker jo alligevel kun, når musen er over elementet !-)

<img src="gfx/spg_3.gif" style="border:0;width:10px;height:12px;cursor:pointer;" onmouseover="popup(1);" onmouseout="popout(10);" alt=""/>
Avatar billede nemlig Professor
19. november 2007 - 09:06 #21
Roenving: Jeg skal lige være med. Er det .....cursor:pointer... du mener.
Den har jeg sat til:

this.style.cursor='help';

Men jeg er usikker på, om det var det, du mente????
Avatar billede roenving Novice
19. november 2007 - 09:15 #22
<img src="gfx/spg_3.gif" style="border:0;width:10px;height:12px;cursor:help;" onmouseover="popup(1);" onmouseout="popout(10);" alt=""/>
Avatar billede nemlig Professor
19. november 2007 - 09:24 #23
OK - tak for meldingen.
Avatar billede w13 Novice
19. november 2007 - 14:45 #24
Ja, det er da rigtigt. Den så jeg ikke lige..
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