Avatar billede trasmus Nybegynder
05. september 2002 - 00:32 Der er 3 kommentarer og
1 løsning

setTimeout()

<html>
Når man kører musen henover link "hurtigt" ruller undermenuen ned, når man fjerner musen forsvinder den efter 5 sekunder. Hvis man kører musen flere gange henover punktet virker det som om den bliver ligeglad med de 5 sekunder jeg har bedt dem om men bare fjerner undermenuen med det samme hvorfor det???
<script languge=javascript>
var isDHTML = 0;
var isLayers = 0;
var isAll = 0;
var isID = 0;

if (document.getElementById) {isID = 1; isDHTML = 1;}
else {
browserVersion = parseInt(navigator.appVersion);
if ((navigator.appName.indexOf('Netscape') != -1) && (browserVersion == 4)) {isLayers = 1; isDHTML = 1;}
else {
if (document.all) {isAll = 1; isDHTML = 1;}
}}

function findDOM(objectID,withStyle) {
    if (withStyle == 1) {
        if (isID) { return (document.getElementById(objectID).style) ; }
        else {
            if (isAll) { return (document.all[objectID].style); }
        else {
            if (isLayers) { return (document.layers[objectID]); }
        };}
    }
    else {
        if (isID) { return (document.getElementById(objectID)) ; }
        else {
            if (isAll) { return (document.all[objectID]); }
        else {
            if (isLayers) { return (document.layers[objectID]); }
        };}
    }
}



var akt=0;
var tim1=null;
var mousov=0;

function findpos(ide){
if(akt==1&&mousov==0){
akt=2;
domStyle=findDOM('pkt1',1);
var domMenu = findDOM('pkt1',0);
var domMenuOpt = findDOM('pkt1',0);
var domSMenu = findDOM('pkt1',1);

if(isLayers){
var leftpos=ide.pageX - 5;
var toppos=ide.pageY - 5;
}
if(isID||isAll){
var leftpos=(domMenu.offsetLeft) + (domMenuOpt.offsetLeft) + 75;
var toppos=(domMenu.offsetTop) + (domMenu.offsetHeight) + 5;
}
var topposs=toppos+"px";
var leftposs=leftpos+"px";
domStyle=findDOM('hideshow',1);
domStyle.left=leftposs;
domStyle.top=topposs;
domStyle.visibility="visible";

} 
window.status=akt;
}

function setakt(){
mouseov=1;
if(akt==0){
akt=1;
}
}

function setpas(){
mouseov=0;
if(akt==1){
akt=0;

}
window.status=akt;
}

function closeelem(ide){
domStyle=findDOM(ide,1);
if(akt==2&&mouseov==0){
domStyle.visibility="hidden";
akt=0;
window.status=akt;
}
}

function delcloseelem(ide){
setTimeout("closeelem('"+ide+"')",5000);
window.status=akt;

}

</script>
<style>
.bord{
font-family:verdana;
border-style:solid;
border-width:1px;
border-color:red;
background-color:3333ff;
color:ffffff;
padding:12px;
line-height:30px;
visibility:VISIBLE;
margin-left:20px;
}
p{
font-family:arial;
margin-left:12px;
font-size:20px;
}

#pkt1{
position:relative;
visibility:visible;
}
#hideshow{
position:absolute;
visibility:hidden;
z-index:100;
}

.lak{
position:absolute;
width:100px;
PADDING-TOP: 2px;
PADDING-BOTTOM: 2px;
PADDING-LEFT: 4px;
PADDING-RIGHT: 4px;
border-style:solid;
border-width:1px;
border-color:red;
background-color:777777;
}

A {
    FONT-SIZE: 12px; 
    COLOR:000000;
    FONT-FAMILY: Verdana;
    TEXT-DECORATION: none;
}
A:hover {
    FONT-SIZE: 12px; 
    COLOR:ffffff;
    FONT-FAMILY:Verdana;
    TEXT-DECORATION: none;
}
</style>


<body>
<DIV ID="hideshow">
<a href="#" class=lak onmouseover="setakt();" onmouseout="setpas(),delcloseelem('hideshow');">deeeee</a><br>
<a href="#" class=lak onmouseover="setakt();" onmouseout="setpas(),delcloseelem('hideshow');">deeeee</a><br>
<a href="#" class=lak onmouseover="setakt();" onmouseout="setpas(),delcloseelem('hideshow');">deeeee</a><br>
<a href="#" class=lak onmouseover="setakt();" onmouseout="setpas(),delcloseelem('hideshow');">deeeee</a><br>
</DIV>


<span class=bord>
<i>Verden var af lave.</i>
<p>Der var </p>
<p>engang en bondedreng som drog ud i
verden for at finde det bedste der fandtes</p>
</SPAN>
<p>Det skulle dog vise sig ikke at være så nemt enda</p>

<Div ID="pkt1">
<a href="#" class=lak onmouseover="setakt(),findpos(event);" onmouseout="setpas(),delcloseelem('hideshow');">hurtigt </a>

</DIV>


</body>
</html>
Avatar billede jakoba Nybegynder
05. september 2002 - 00:37 #1
hvergang du fører over startes en ny setTomeout, men de gamle er der stadig og vil lukke når deres tid er inde. du skal sørege for at fjeren de gamle hvergang du sætter en ny:

var timeHandle;      // husker sidst satte timeout.
function delcloseelem(ide){
    clearTimeout( timeHandle );  // fjern den forrige
                                // og husk den næste.
    timeHandle = setTimeout( "closeelem('"+ide+"')", 5000 );
    window.status=akt;
}

såvidt jeg kan se er det kun der du behøver ændre noget.

mvh JakobA
Avatar billede trasmus Nybegynder
05. september 2002 - 09:25 #2
jeps jeg syntes jeg havde prøvet det men åbenbart ikke helt rigtigt for det ser ud til at virke.
Mnage tak
Avatar billede trasmus Nybegynder
05. september 2002 - 09:27 #3
har du så fået pointsene eller hvordan det nu staves??
Avatar billede jakoba Nybegynder
05. september 2002 - 09:33 #4
jep de er ankommet :-)
takker.

mvh JakobA
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