Ankündigung

Einklappen
Keine Ankündigung bisher.

Div bewegen

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Div bewegen

    Hallo,

    ich versuche verzweifelt das div richtig bewegen zu können, jedoch ist wohl die animate funktion eine schlechte wahl, oder ich bin buchstäblich zu doof.

    PHP-Code:
    //bewegung
    $(document).ready(function() {
        $(
    document).keydown(function(event) {
            var 
    key String.fromCharCode(event.keyCode);
            
    key.toUpperCase();
                    switch(
    key) {

                case 
    "W":

                $(
    ".gameuser").css("background-image""url(/img/figur.png)");
                    $.
    getJSON"/ajax/ajax1.php?1=W", function( daten ) {
                        $( 
    ".gameuser" ).data("x"daten.x);
                        $( 
    ".gameuser" ).data("y"daten.y);
                        if(
    daten.laufbar == 1)
                        {
                            
    zoom = $("#gamesize").data("zoom");
                            
                            $(
    ".gameuser").stop(falsefalse);
                            
                            $( 
    ".gameuser" ).filter(":not(:animated)").animate({ "bottom": (daten.y*zoom-zoom)+"px""left": (daten.x*64-64)+"px" }, "1000");
                        
                        }
                    });
                break;
                case 
    "A":

                $(
    ".gameuser").css("background-image""url(/img/figur.png)");
                    $.
    getJSON"/ajax/ajax1.php?1=A", function( daten ) {
                        $( 
    ".gameuser" ).data("x"daten.x);
                        $( 
    ".gameuser" ).data("y"daten.y);
                        if(
    daten.laufbar == 1)
                        {
                            
    zoom = $("#gamesize").data("zoom");
                            $(
    ".gameuser").stop(falsefalse);
                            
                            $( 
    ".gameuser" ).filter(":not(:animated)").animate({ "bottom": (daten.y*zoom-zoom)+"px""left": (daten.x*64-64)+"px" }, "1000""linear" );
                            
                        }
                    });
                break;
                case 
    "D":
                $(
    ".gameuser").css("background-image""url(/img/figur.png)");
                    $.
    getJSON"/ajax/ajax1.php?1=D", function( daten ) {
                        $( 
    ".gameuser" ).data("x"daten.x);
                        $( 
    ".gameuser" ).data("y"daten.y);
                        if(
    daten.laufbar == 1)
                        {
                            
    zoom = $("#gamesize").data("zoom");
                            $(
    ".gameuser").stop(falsefalse);
                            
                            $( 
    ".gameuser" ).filter(":not(:animated)").animate({ "bottom": (daten.y*zoom-zoom)+"px""left": (daten.x*64-64)+"px" }, "1000""linear" );
                        
                        }
                    });
                break;
                case 
    "S":
                $(
    ".gameuser").css("background-image""url(/img/figur.png)");
                    $.
    getJSON"/ajax/ajax1.php?1=S", function( daten ) {
                        $( 
    ".gameuser" ).data("x"daten.x);
                        $( 
    ".gameuser" ).data("y"daten.y);
                        if(
    daten.laufbar == 1)
                        {
                            
    zoom = $("#gamesize").data("zoom");
                            $(
    ".gameuser").stop(falsefalse);
                            $( 
    ".gameuser" ).filter(":not(:animated)").animate({ "bottom": (daten.y*zoom-zoom)+"px""left": (daten.x*64-64)+"px" }, "1000""linear" );
                        }
                    });
                break;
                case 
    "I":
                    
    toggleDiv(inventar);
                break;
            }

        });

    }); 
    das wäre der code, man kann sie bewegen, das ist nicht das problem, sondern eher das das div springen tut bzw durch die karte hüpfen tut.
    Also wenn ich angenommen w drücke rennt oder slidet das div weiter als es soll es lässt sich auch durch den gegenpart s nur schwer bremsen bzw in die andere richtung bringen.

    wäre nett wenn mir wer hlefen kann.
    mfg


  • #2
    Poste das bitte noch mal in lokal testbar per Copy & Paste.

    Kommentar


    • #3
      Ich werfe einfach mal auf gut Glück queue: false als zusätzliche Option für die animate-Methoden in den Raum. Probier's einfach mal aus.

      Kommentar


      • #4
        danke, nun bekommt man ihn besser kontorlliert, jedoch besteht das problem das er ja schneller wird weiterhin. und das ja weis ich nicht wie ich das löse

        Kommentar


        • #5
          Das ist nun mal das Prinzip von Events. Die Tastatur puffert lange gehaltene Keys als mehrere Tastendrücke und JS erzeugt für jeden Tastendruck einen Sprung.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            wie kann ich dies abändern?!

            mfg

            Kommentar


            • #7
              debounce würd ich vorschlagen:
              http://unscriptable.com/2009/03/20/d...cript-methods/

              Kommentar


              • #8
                IMHO gar nicht. Vielleicht mit debounce -> Google.

                [edit] Zu lahm.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  hab mir das mal angeschaut, wenn ich es recht verstanden habe verzögert debounce den output richtig?!

                  Kommentar


                  • #10
                    hab mich nun die ganze zeit ja belesen, ich denke es sei wohl die lösung aber ich hab kein plan wie ich es einbaue

                    Kommentar


                    • #11
                      Ja schade. Suchste Dir halt ein anderes Projekt.
                      --

                      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                      --

                      Kommentar


                      • #12
                        mensch bist du nett, freundlichkeit war nicht so deins ne

                        Kommentar


                        • #13
                          http://davidwalsh.name/function-debounce das sei dir empfohlen.

                          Kommentar


                          • #14
                            Zitat von Schlafmuetz Beitrag anzeigen
                            mensch bist du nett, freundlichkeit war nicht so deins ne
                            Nimm es ihm nicht zu übel, er hat hier teilweise einen sehr harten Job!

                            Kommentar


                            • #15
                              Sicher, dass das Problem nicht falsch angegangen wird? Ich werde mir nicht den Code vom Startpost durchlesen aber kann man das Problem nicht durch Stoppen der Animation beheben? http://api.jquery.com/stop/

                              Kommentar

                              Lädt...
                              X