8 berichten aan het bekijken - 1 tot 8 (van in totaal 8)
  • Q:
    Gast
    Anoniem

    hulp debug script

    beste prof’s

    wie weet hier de oplossing?

    De div verplaatst zich netjes naar rechts, maar als hij naar links moet gaat het mis (coordinaten2)
    wie ow wie weet het antwoord?

    Thanks!!

    <script type=”text/javascript”>
    var x=250;

    function Laag() {
    if(x < 440) {
    setInterval(“coordinaten()”,2); }
    if(x > 440) {
    setInterval(“coordinaten2()”,2); }
    }

    function coordinaten() {
    x= x+2;
    if(x<440) {
    document.getElementById(‘bladwijzer’).style.left = x;
    } else {
    clearInterval();
    }

    function coordinaten2() {
    x= x-2;
    if(x>440) {
    document.getElementById(‘bladwijzer’).style.left = x;
    } else {
    clearInterval();
    }

    }
    </script>

    Bijdrager
    MacTommy

    Het is mij niet helemaal duidelijk wat je precies probeert te doen, maar als ik de code bekijk heb ik een paar vragen:

    – Waarom check je 2 keer of die x groter of kleiner is dan 440?
    je doet dat eerst in in Laag(), en dan roep je afhankelijk van de waarde coordinaten() of coordinaten2() aan, waarin je het nog weer een keer test. Ik weet niet hoe vaak/wanneer je die Laag() aanroept, maar ligt een while-loopje nietr meer voorde hand, misschien..??

    – En wat gebeurt er als x = 440..?!?
    Dan doet die Laag() nooit meer iets… Geen van beide coordinaten-functies wordt ooit nog aangeroepen…

    Zou het daar iets mee te maken kunnen hebben..?!?

    Gast
    Anoniem

    Dank je dat je geken hebt.

    Het moet als volgt gaan werken

    • controleer positie
    • als hij minder is dan 250, dan word je positie 450 met interval, zodat het vloeiend schuift
    • als hij meer is dan 250, dan word je positie 250 met interval, zodat het vloeiend schuift

    denk maar aan cyberduck met de bladwijzerbalk, misschien is dat duidelijker

    Bijdrager
    MacTommy

    Ja, zoiets dacht ik al, maar als dat ding het 95 keer heeft gedaan is de x positie 440 (nl. 250 + 190), en dan gebeurt er volgens mij helemaal niks meer…

    Toch..?!?

    Gast
    Anoniem

    klopt! Maar hoe krijg ik het nu goed?

    Bijdrager
    macpro

    Is ook logisch dat het hele spel stopt zodra X op 440 staat.
    Je test overal of x kleiner dan 440 of groter dan 440 is.
    Probeer het eens met kleiner/gelijk en groter/gelijk.
    Dan neem je ook de situatie mee dat x 440 is.

    Bijdrager
    MacTommy

    Ja, precies.

    Wat gebeurt er als je zoiets doet:

    [code:1:0179661f25]function Laag() {
    if(x < 440) {
    setInterval("coordinaten()",2);
    }
    if(x >= 440) { // <– daar groter of gelijk
    setInterval("coordinaten2()",2);
    }
    }[/code:1:0179661f25]

    Gast
    Anoniem

    Oke ik heb wat zitten spelen met de bron code en het werkt! Alleen als je open, sluit heb gedaan kan je het niet herhalen:S

    nieuwe code

    <script type=”text/javascript”>
    var x=250; // set variable

    function Laag() { // controleer de laag
    if(x < 251) { // x als lager dan var x ga naar coordinaten
    setInterval(“coordinaten()”,2); }
    }

    function coordinaten() {
    x= x+2; // is 252
    if(x<450) { // ga naar eindpunt
    document.getElementById(‘bladwijzer’).style.left = x;
    } else {
    clearInterval();
    }

    }

    var x2=450; // set variable

    function Laag2() { // controleer de laag
    if(x2 > 1) { // x als lager dan var x ga naar coordinaten
    setInterval(“coordinaten2()”,2); }
    }

    function coordinaten2() {
    x2= x2-2; // is 250
    if(x2>250) { // ga naar eindpunt
    document.getElementById(‘bladwijzer’).style.left = x2;
    } else {
    clearInterval();
    }
    }
    </script>

8 berichten aan het bekijken - 1 tot 8 (van in totaal 8)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.