Ergebnis 1 bis 8 von 8
  1. #1
    d.gierse ist offline Grünschnabel
    registriert
    19-04-2006
    Beiträge
    3

    Drag layer Probleme

    Hallo zusammen,

    ich habe auf meiner Seite eine beliebige Anzahl Layer ( werden aus der Datenbank geholt und mit ASP.NET erzeugt). Diese Layer möchte ich verschieben können und anschliessend die Position speichern. Dazu erzeuge ich dynamisch Textfelder und übergebe dem Script die ID des zu dem Layer passenden Textfeldes.

    Wenn ich diese Layer verschiebe wird aber der Text auf der darunter liegenden Seite bzw. der Text anderer Layer markiert. Wie kann ich das verhindern? Bzw. hat jemand ein anderes Drag-Skript, bei dem ich die IDs der Textfelder übergeben kann?

    Das Skript von walterzorn.com hab ich mir auch schon angesehen, aber da habe ich das Problem, das ich dem Skript nicht mitteilen kann, welches Textfeld zu welchem Layer gehört. Wenn es da Lösungen gibt, wäre ich auch sehr dankbar...

    Hier noch der Beispielcode:
    Code:
    <script type="text/javascript">
    //Das Objekt, das gerade bewegt wird.
    var dragobjekt = null;
    var tb_left_id = null;  //Textfeld, in das die Pixelposition links zu diesem Layer geschrieben wird
    var tb_top_id = null;   //Textfeld, in das die Pixelposition oben zu diesem Layer geschrieben wird
    
    // Position, an der das Objekt angeklickt wurde.
    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 dragstart(element, tbleft, tbtop) {
       //Wird aufgerufen, wenn ein Objekt bewegt werden soll.
    
      dragobjekt = element;
      tb_left_id = tbleft;
      tb_top_id = tbtop;
      dragx = posx - dragobjekt.offsetLeft;
      dragy = posy - dragobjekt.offsetTop;
      
    }
    
    
    function dragstop() {
      //Wird aufgerufen, wenn ein Objekt nicht mehr bewegt werden soll.
    
      dragobjekt=null;
      tb_id = null;
    }
    
    
    function drag(ereignis, id) {
      //Wird aufgerufen, wenn die Maus bewegt wird und bewegt bei Bedarf das Objekt.
      id=id+"";
      posx = document.all ? window.event.clientX : ereignis.pageX;
      posy = document.all ? window.event.clientY : ereignis.pageY;
      if(dragobjekt != null) {
        dragobjekt.style.left = (posx - dragx) + "px";
        dragobjekt.style.top = (posy - dragy) + "px";
        document.getElementById(tb_left_id).value = (posx - dragx) + "";
        document.getElementById(tb_top_id).value = (posy - dragy) + "";
      }
    }
    </script>
    ...
    <body onload="draginit();" > 
    ...
    <div class="vrs_startbild_items" onmousedown="dragstart(this, 'ctl00_ContentPlaceHolder1_pos_left_21', 'ctl00_ContentPlaceHolder1_pos_top_21')" style="top: 500px; left: 725px;">
    		
    <img src="customerhome.aspx-Dateien/startkarte_vrs0.gif" style="border-width: 0px;"><span>RÜB Siegen Leimbachstr.</span>
    
    </div>
    ...weitere divs

    Erläuterungen:
    Die Methode draginit wird beim Laden der Seite aufgerufen. Von da an werden die Mausbewegungen ausgewertet

    Bei onmousedown auf einen der Layer wird dieser als verschiebbares Element festgelegt die die Mausbewegungen bis zum onmouseup ausgewertet.

    Gruß Dominik

  2. #2
    Avatar von dkdenz
    dkdenz ist offline Foren-Gott
    registriert
    13-04-2004
    Ort
    Lübeck
    Beiträge
    12.050

    AW: Drag layer Probleme

    Falsches Forum -> JavaScript-Forum

  3. #3
    d.gierse ist offline Grünschnabel
    registriert
    19-04-2006
    Beiträge
    3

    AW: Drag layer Probleme

    ja habe ich kurz nach dem posten auch gemerkt. Hatte erst in den Tuts geguckt und dann im falschen Bereich auf neues Thema gedrückt...
    Vielen Dank für die Korrektur.

    Gruß Dominik

  4. #4
    Avatar von dkdenz
    dkdenz ist offline Foren-Gott
    registriert
    13-04-2004
    Ort
    Lübeck
    Beiträge
    12.050

    AW: Drag layer Probleme

    Keine Ursache...

  5. #5
    pit-r Guest

    AW: Drag layer Probleme

    Moin!
    Zitat Zitat von d.gierse
    Das Skript von walterzorn.com hab ich mir auch schon angesehen, aber da habe ich das Problem, das ich dem Skript nicht mitteilen kann, welches Textfeld zu welchem Layer gehört. Wenn es da Lösungen gibt, wäre ich auch sehr dankbar...
    Du könntest onmouseup eine eigene Funktion aufrufen, die Du mit den Positionswerten aus dem Zorn-Script fütterst und diese dann in Deine Inputs schreiben lassen...

    Ahoi - Pit

  6. #6
    d.gierse ist offline Grünschnabel
    registriert
    19-04-2006
    Beiträge
    3

    AW: Drag layer Probleme

    ja die Idee mit on mouseup ist super, danke !! Hab grade das Zorn-Skript etwas angepasst.
    Wenn man dabei die Textfelder laufend aktualisiert kommt aber auch beim dem Zorn-Skript wieder das Problem,das der Text auf der Seite markiert wird. Wenn man das Ganze über onmouseup macht, funktioniert es also einwandfrei. Problem ist also gelöst, Danke.

    Gruß Dominik

  7. #7
    pit-r Guest

    AW: Drag layer Probleme

    Gern geschehen.

    Ahoi - Pit

  8. #8
    ein schlauer ist offline Lounge-Member
    registriert
    18-08-2004
    Beiträge
    14.671

    AW: Drag layer Probleme

    du musst lediglich die Event Funktionen mit einem return false beenden, dann wird auch nichts markiert.

Ähnliche Themen

  1. Probleme mit Drag Script
    Von st.biegel im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 02-03-2006, 15:22
  2. Antworten: 3
    Letzter Beitrag: 26-09-2005, 16:36
  3. Layer und z-Index
    Von PHP-B-GINNA im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 21-08-2002, 17:24
  4. Probleme mit DIV / LAYER in Netscape 4.7X
    Von div style im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 18-02-2002, 16:52
  5. Probleme mit Layer...
    Von M_icha im Forum Allgemeines
    Antworten: 1
    Letzter Beitrag: 14-09-2000, 13:08

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •