[JavaScript] Drag & Drop

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Terrorbeat, 8. Januar 2009 .

Schlagworte:
  1. 8. Januar 2009
    Drag & Drop

    Ich brauche Hilfe, und zwar hier mit. Ich möchte, wen ich eines der Objekte Bewege das dass Zweite sich mit bewegt in die selbe Richtung zu den selben Verhältnis wie sie sich vorher standen. Kann mir jemand die Einzelheiten erklären von JS habe ich nicht soviel ahnung, reicht meist nur für das mindeste.

    Letztendlich soll es sowas werden. Das mit dem Ajax und PHP lasst mal meine sorge sein ich brauche erstmal nur die Möglichkeiten eine Map so zu verschieben.
     
  2. 8. Januar 2009
    AW: Drag & Drop

    ich glaub eher, dass das hintergrundbild verschoben wird (bzw. der layer unter den beiden fenstern, die sich beim aufruf der seite aufbauen) und nicht mehrere andere layer gleichzeitig.
     
  3. 8. Januar 2009
    AW: Drag & Drop

    im grunde isses nur ne kleine änderung, ich hab das mal anhand des beispiels gemacht:

    HTML:
    <html>
    <head>
    <title>Drag-and-Drop</title>
    <script type="text/javascript">
    <!-- gueltig fuer Netscape ab Version 6, Mozilla, Internet Explorer ab Version 4
    
    //Das Objekt, das gerade bewegt wird. - jetzt alle objekte die bewegt werden sollen
    var dragobjekts = [];
    
    // Position, an der das Objekt angeklickt wurde. - wird jetzt für jedes objekt
    // seperat gespeichert
    /*
    var dragx = 0;
    var dragy = 0;
    */
    
    // Mausposition
    var posx = 0;
    var posy = 0;
    
    
    function draginit() {
     // Initialisierung der Überwachung der Events
    
     document.onmousemove = drag;
     document.onmouseup = dragstop;
    }
    
    
    function in_array(array, value)
    {
     for(var i = 0, to = array.length; i < to; i++) {
     if(array[i] == value)
     return true;
     }
     
     return false;
    }
    
    function dragstart(element) {
     //Wird aufgerufen, wenn ein Objekt bewegt werden soll.
    
     dragobjekts.push([element, [posx - element.offsetLeft, posy - element.offsetTop]]);
     
     // Alle Elemente finden mit der selben class
     var search = element.className;
     var elements = document.getElementsByTagName('*');
     for(var i = 0, to = elements.length; i < to; i++) {
     if(!elements[i].className || elements[i] == element)
     continue;
     
     if(!in_array(elements[i].className.split(' '), search))
     continue;
     
     dragobjekts.push([elements[i], [posx - elements[i].offsetLeft, posy - elements[i].offsetTop]]);
     }
    }
    
    
    function dragstop() {
     //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
    
     dragobjekts = [];
    }
    
    
    function drag(ereignis) {
     //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
    
     posx = document.all ? window.event.clientX : ereignis.pageX;
     posy = document.all ? window.event.clientY : ereignis.pageY;
     if(dragobjekts.length) {
     for(var i = 0, to = dragobjekts.length; i < to; i++) {
     with(dragobjekts[i][0]) {
     style.left = (posx - dragobjekts[i][1][0]) + 'px';
     style.top = (posy - dragobjekts[i][1][1]) + 'px';
     }
     }
     }
    }
    //-->
    </script>
    </head>
    <body onload="draginit()">
    <div class="drag2" onmousedown="dragstart(this)" style="position:absolute;top:0px;left:0px;height:100px;width:100px;background:#ff0000"> </div>
    <div class="drag2" onmousedown="dragstart(this)" style="position:absolute;top:200px;left:200px;height:100px;width:100px;background:#00ff00"> </div>
    </body>
    </html>
    aber in deinem fall hat teh_boiiingerrr absolut recht, auf der website wird der hintergund bewegt - aber keine sorge, auch da hat der onkel murdoc schonmal was gebastelt xD

    http://murdoc.eu/javascripts/dragmap/ <- hintergrund anklicken

    wobei ich, wenn dir dieses drag/drop schon probleme macht, nicht glaube das du alleine weiterkommst danach ^^
     
  4. 8. Januar 2009
    AW: Drag & Drop

    Da hast du wohl recht, verstehe es ja nichtmal vom Prinzp her.

    Der Hintergrund muss sich ja aus mehreren Teilen zusammensetzen um die Zonen gebiete individuell anzusprechen oder zu gestallten. Aber bei deinem Programm hat man ja nur die Möglichkeit ein einziges Hintergrundbild einzufügen. Wie mache ich das den?

    Eine Karte, an der Linke/rechts, oben/unten Pfeile wären, könnte ich ohne Probleme eine Ajax map machen aber es ist nicht so komfortabel wie die Beispielkarte besonders wen man über länger Strecken gehen muss.

    2xBewertungen verteilt besonders Murdoc, vielen dank für den aufwand es so umzuschreiben
     
  5. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.