Push-Nachrichten von MacTechNews.de
Würden Sie gerne aktuelle Nachrichten aus der Apple-Welt direkt über Push-Nachrichten erhalten?
Forum>Entwickler>javascript pause

javascript pause

flowgrow
flowgrow16.01.0918:46
hallihallo leute

ich hab da ein problem mit javascript und zwar weiß ich nicht wie man eine pause einfügt.
nach einer kurzen google suche hat sich dann schnell herausgestellt, dass es sowas auch nicht so wirklich gibt, sondern nur setTimeout()... leider bin ich damit als relativer js neuling überfordert.

sehts auch bitte einfach selbst an - hier is der code:
function slide(dir){
    var margin = new Array();
    var obj = document.getElementById("menu-table");
    var direction = new Array("right", "left");
    
    if (dir == "right") {
        margin[0] = -800;
        margin[1] = -860;
        var m = -1;
        var change = direction[1];
    } else if (dir == "left") {
        margin[0] = -60;
        margin[1] = 0;
        var m = 1;
        var change = direction[0];
    }
    
    while(parseInt(obj.style.marginLeft) != margin[0]) {
        alert("1");
        slideFirst(m);
    }
    while(parseInt(obj.style.marginLeft) != margin[1]) {
        alert("2");
        slideSecond(m);
    }
    
    document.getElementById(dir + "-a").href = "#";
    document.getElementById(dir).className = document.getElementById(dir).className + " inactive";
    
    document.getElementById(change + "-a").href = "javascript:slide('" + change + "')";
    document.getElementById(change).className = "pfeil " + change;

}

// schneller start
function slideFirst(m) {
    var obj = document.getElementById("menu-table");
        obj.style.marginLeft = parseInt(obj.style.marginLeft) + 100*m + "px";
    
}

// sanftes ende
function slideSecond(m) {
    var obj = document.getElementById("menu-table");
        obj.style.marginLeft = parseInt(obj.style.marginLeft) + 5*m + "px";
    
}
die URL dazu:

wie ihr vielleicht merkt, ist jetzt statt einer pause ein alert, den man erst mit ok bestätigen muss, damit es weitergeht.. das ist natürlich nicht gewünscht ich will ja eine "smoothe" bewegung erzeugen

kann mir also bitte irgendwer sagen wie ich das so umändern kann, dass es mit setTimeout() funktioniert??

danke im voraus
Flo
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0

Kommentare

flowgrow
flowgrow16.01.0919:21
schade, dass mir hier niemand helfen kann

ich hab da nämlich auch ein problem mit der darstellung im IE

ich hoffe es findet sich wer
„Chuck Norris hat mehr Kreditkarten als Max Mustermann!“
0
BenderB16.01.0919:50
Eigentlich wäre

setTimeout('slideFirst', 2000, m);

die richtige Funktion, allerdings funktioniert es in allen Browsern, außer dem IE (ohne Worte...)

Du wirst wohl um globale Variablen (böses Pfui) nicht drumrum kommen. Für die gedachte Anwendung solltest du dir mal Scriptaculous ansehen [url]script.aculo.us[/url], da kannst du sowas mit sehr wenig Aufwand realisieren.
0

Kommentieren

Diese Diskussion ist bereits mehr als 3 Monate alt und kann daher nicht mehr kommentiert werden.