Avatar billede lip Nybegynder
02. maj 2001 - 12:23 Der er 10 kommentarer og
2 løsninger

slide layer

Jeg har lavet en simpel slide ind menu fra højre.

Denne function før mine layer til at glide ind og blive clippet, så de løbende bliver synlige.
Det virker fint, men den hakker alt for meget, hvis der er en der har en løsning kunne det være helt perfekt.

function slide() {           
        if (block.xpos > endLeft) {
        block.xpos -= 5
        block.left = block.xpos;           
        if (block.hide < slutLeft){
        block.hide += 5
        block.clip = \"rect(auto,\"+block.hide+\",auto,auto)\";

For helheden skyld er hele koden nedenunder
<script language=\"JavaScript\">
<!--

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

//function til at gemme layers
function hide(id){
    if (ns4) document.layers[id].visibility = \"hide\"
    else if (ie4) document.all[id].style.visibility = \"hidden\"   
}

//function til at vise det valgte lag og fortælle det hvorhenne det skal starte
function init(id){
    if (ns4) document.layers[id].visibility = \"show\"
    else if (ie4) document.all[id].style.visibility = \"visible\"
   
    if (ns4) block = document.layers[id]
    if (ie4) block = document.all[id].style
    block.xpos = parseInt(block.left)
    block.xpos = 709;    //sætter teksten til udgangspunktet,  kan hentes dynamisk ved at aflæse layer
    endLeft = 15;
    slutLeft = 375;
    block.hide = 0; // sætter clip funtionen til at have udgangspunkt 0   
    }
   
// denne function gør at teksten flytter sig, via et loop
// 5 pix til højre, så laver man et loop så den flytter sig 5 pix af gangen
function slide() {           
        if (block.xpos > endLeft) {
        block.xpos -= 5
        block.left = block.xpos;           
        if (block.hide < slutLeft){
        block.hide += 5
        block.clip = \"rect(auto,\"+block.hide+\",auto,auto)\";
        setTimeout(\"slide()\",25)
        }
    }
}
//-->
</SCRIPT>
</script>

                        <table border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">
                            <tr>
                                <td width=\"50\"></td>
                                <td><font class=\"topmenu\"><A class=\"topmenusub\" HREF=\"#\" OnMouseOver=\"hide(\'txt2\');hide(\'txt3\');init(\'txt1\');slide();\">hovedmenu1</A></font></td>
                                <td width=\"50\"></td>
                                <td><font class=\"topmenu\"><a class=\"topmenusub\" href=\"java script:hide(\'txt1\');hide(\'txt3\');init(\'txt2\');slide();\">hovedmenu2</a></font></td>
                                <td width=\"50\"></td>
                                <td><font class=\"topmenu\"><a class=\"topmenusub\" href=\"java script:hide(\'txt1\');hide(\'txt2\');init(\'txt3\');slide();\">hovedmenu3</a></font></td>
                                <td width=\"50\"></td>
                                <td><font class=\"topmenu\">hoved menu4</font></td>
                                <td width=\"50\"></td>
                            </tr>
                        </table>
                   
<span id=\"txt3\" z-index: 3;  STYLE=\"position:absolute; left:325px; top:155px; width:375px; height:10px; clip:rect(auto,375,auto,auto); visibility: hidden;\"><font class=\"topmenusub\">under menu1</font></span>

<span id=\"txt2\" z-index: 2;  STYLE=\"position:absolute; left:325px; top:155px; width:375px; height:10px;clip:rect(auto,375,auto,auto);  visibility: hidden;\"><font class=\"topmenusub\">undermenu 2</font></span>

<span id=\"txt1\" z-index: 1; STYLE=\"position:absolute; left:325px; top:155px; width:375px; height:10px;clip:rect(auto,375,auto,auto);  visibility: hidden;\"><font class=\"topmenusub\">undermenu 3</font></span>

        setTimeout(\"slide()\",25)
        }
    }
}
Avatar billede lip Nybegynder
02. maj 2001 - 12:24 #1
p.s det behøver kun at virke i IE
Avatar billede nute Nybegynder
02. maj 2001 - 12:27 #2
prøv å bytte ut:

setTimeout(\"slide()\",25)

med

setTimeout(\"slide()\",1000)

og se om ikke det hjelper

/nute       
Avatar billede lip Nybegynder
02. maj 2001 - 12:53 #3
nej det virker modsat, den bliver meget langsom!
Avatar billede nute Nybegynder
02. maj 2001 - 13:55 #4
hva så med

setTimeout(\"slide()\",1)
Avatar billede lip Nybegynder
02. maj 2001 - 13:58 #5
nej, den hakker stadigvæk! træls
Avatar billede nute Nybegynder
02. maj 2001 - 14:09 #6
den vil alltid hakke på den måten. Du vil ikke kunne få bevegelsene til å bli mer \"smooth\". Ta allikevel en titt på :

http://www.dansteinman.com/dynduo/en/sliding.html

og se om du ikke kan få et par tips...

/nute
Avatar billede lip Nybegynder
02. maj 2001 - 14:13 #7
Ja, den har jeg set og det vil være det samme.
Hvis du kikker på www.bangolufsen.dk
Så er den jo bare perfekt, så kan jeg vil også få den til at være perfekt.
Avatar billede engrob Nybegynder
02. maj 2001 - 14:24 #8
På bangolufsen.dk har de lavet det med nogen arrays, der fortæller hvor lagene skal flytte sig hen. Sikkert simpelt nok, bare ikke så simpelt jeg kan finde ud af det...
Avatar billede lip Nybegynder
02. maj 2001 - 14:41 #9
Okay,
er der nogen der kan finde ud af at lave mit script om, så det bliver lige så perfekt som B&O
Avatar billede lip Nybegynder
02. maj 2001 - 15:23 #10
Jeg fandt selv en løsning, men takker for indsatsen.
Nute du får lige lidt point for indsatsen!
Avatar billede nute Nybegynder
02. maj 2001 - 15:28 #11
takker :)
Avatar billede lip Nybegynder
02. maj 2001 - 15:31 #12
You welcome!
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