• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Konflikt zwischen zwei Programmen für das Bewegen eines Containers

Der Horst

Mitglied
Servus,
ich habe ein Container programmiert der durch das "Berühren" mit der Maus eines Linkes, des Container nach rechts gleiten lässt und wenn die Maus den Link nicht berührt sollte der Container nach links wiedergehen. Das Problem ist, dass es zwischen den Programmen ein Konflikt gibt, das heißt der Container zittert in der Mitte des Bildschirmes und auch wenn ich den Link wieder berühre geht nix mehr.

flag setzt sich auf 1 wenn ich den Link berühre und auf 0 wenn ich ihn verlasse. Dieser Link sieht folgendermaßen aus:
HTML:
 <a href="#" onmouseover="scroll(1);"onmouseout="scroll(0)">
            <img src="../images/dnArrow.gif" width="18" height="24" alt="Scroll Dn"/>
        </a>
Und hier ist mein Javascriptcode, ich weiß nur das der Konflikt wegem dem Befehl setTimeOut () ensteht doch sehe ich keine andere Lösung um mein Container sanft von links nach rechts gleiten zu lassen und anders rum.
Code:
var incrementVal = 2;
var timer;
var flag;

function scroll(flag)
{
    var obj = document.getElementById("movingDiv");
    var isIE6 = (document.documentElement.clientHeight)? true : false;

    var Y = parseInt(obj.style.top);
    var X = parseInt(obj.style.left);

    var cY = (isIE6)?document.documentElement.clientHeight-173 :((document.all)? document.body.clientHeight-173:window.innerHeight - 173);
    if(flag==1 && X<300){
        obj.style.display= 'block';
        obj.style.left =( X+1)+"px";
        timer = setTimeout("scroll(1)",incrementVal*2);
        }else
    {
    if(flag==0 && X>0){
        obj.style.display= 'block';
        obj.style.left =( X-1)+"px";
        timer = setTimeout("scroll(0)",incrementVal*2);
    }
    }

}
 
doch sehe ich keine andere Lösung um mein Container sanft von links nach rechts gleiten zu lassen und anders rum.
So etwas kann man viel einfacher mit jQuery lösen, das nimmt dir auch die browserspezifischen Abfragen ab. Schau dir mal die Funktion animate() an.
Das Zittern kommt zustande, wenn die zweite Funktion aktiviert wird, bevor die erste beendet ist. Bei jQuery wird dies wahrscheinlich durch das Queueing verhindert.
 
Zuletzt bearbeitet von einem Moderator:
Zurück
Oben