Patrick Andrieu: Eibox, die 7.!

Beitrag lesen

Hallo Detlef!

Das funktioniert in allen Browsern,
Nö, nicht wirklich. Wenn ich die Eibox zügig bewege, bleibt sie oft ein ganzes Stück vom Fensterrand entfernt hängen.

Wie gesagt, mir hat es auch nicht gefallen - auch aus diesem Grund.

Schmeiß das wieder raus

Jein. ;) In der eibox_9.js (sf_etb_9.html), die hier in meinem letzten Post verlinkt ist, bleibt es so :) - Alle bisher verlinkten Dateien lasse ich eine Weile im Test-Verzeichnis, vielleicht interessiert sich mal jemand für die Eibox-Entwicklung!

Aber für die "echten" Eiboxen ist Dein Vorschlag:

  
  function st_do_drag(we) {  
  var o = this.dragObject;  
  if(!o) return;  
  var minLeft = 90 - o.offsetWidth;  
  var pos = st_getEvtPos(we);     // Position des Ereignisses  
  var dTop = o.start_top - o.evt_top + pos[0];  
  var dLeft = o.start_left - o.evt_left + pos[1];  
  o.style.top = (dTop > 0 ? dTop : 0 ) + 'px';  
  o.style.left = (dLeft > minLeft ? dLeft : minLeft) + 'px';  
  return false;  
}  

ein guter Kompromiss zwischen dem Verhalten eines "richtigen" OS-Fensters und der Tatsache, dass die Eibox ja auch nicht "verloren" gehen sollte, weil zu weit oben oder zu weit links. Ich habe ihn eingebaut.

Mittlerweile habe ich die vorerst letzte Fassung hochgeladen, dabei endlich Mathias' Einwand berücksichtigt: Die Boxen haben jetzt nur noch zwei Schaltflächen, da man sie ja nicht ganz auf Bildschirmgröße maximieren kann und soll, und daher wurde der entsprechende Button entfernt. Zu sehen ist nur noch, neben dem Schließen-Button, die Schaltfläche für's Minimieren. Hat man drauf geklickt und die Box ist minimiert, erscheint an deren Stelle die Schaltfläche für's Wiederherstellen. Habe ein bisschen bei PaintShopPro nachgeschaut, das Programm handelt das mit seinen internen Fenstern ähnlich.

http://www.atomic-eggs.com/z_testdir/sf_ebt_10.html#a4
http://www.atomic-eggs.com/z_testdir/eibox_10.js

Nochmals zum Problem des "Maus-außerhalb-des-Browserfensters-loslassens". Ich habe hier zwei DOM-Drag-Beispiele verlinkt, man kann folgendes feststellen:

DOM-Drag-Box
^ Box klebt am Mauzeiger, wenn man außerhalb des Browserfensters die Maus loslässt und wieder ins Fenter zieht.

DOM-Drag-Bilder
^ Hier nicht: Hat man die Maus losgelassen, ist man auch das Bild los (green or grey, purple bliebt ja im Kasten)

In beiden Dateien ist das Script dom-drag.js eingebunden..., onmouseup wir nur im Script notiert (nicht noch mal an zusätzlicher Stelle in der HTML-Datei, was vielleicht hätte ein Grund sein können):

In der Funtkion start:
  document.onmousemove = Drag.drag;
  document.onmouseup = Drag.end;

und hier:

  
 end : function()  
 {  
  document.onmousemove = null;  
  document.onmouseup   = null;  
  Drag.obj.root.onDragEnd( parseInt(Drag.obj.root.style[Drag.obj.hmode ? "left" : "right"]),  
         parseInt(Drag.obj.root.style[Drag.obj.vmode ? "top" : "bottom"]));  
  Drag.obj = null;  
 },  

Von daher ist es mir unverständlich (ohne mich jetzt mit dem Script näher befaßt zu haben), warum bei dem einem Beispiel die Box "klebt" und in dem anderen Beispiel die Bilder nicht.

@Struppi: in Deinem Drag&Drop-Beispiel ist mir heute mit Opera 9.01 ein ähnlicher Darstellungsfehler aufgefallen, wie bei den Bild-Eiboxen. Zwar sind da keine sich wiederholenden Streifen beim Nach-Oben-Draggen, jedoch bleibt beim ersten Draggen des unteren Bildes ein Stück davon an der Stelle "haften". Ein Bild sagt mehr als meine Erklärungsversuche, daher Screenshot:

Scheint also klipp und klar ein Opera-Darstellungsfehler zu sein.

Viele Grüße aus Frankfurt/Main,
Patrick

--

_ - jenseits vom delirium - _
<hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash>
1 50

[nicht nur] für Struppi!

Patrick Andrieu
  • javascript
  1. 0
    Patrick Andrieu
    1. 0
      Struppi
      1. 0
        Patrick Andrieu
      2. 0
        Patrick Andrieu
        1. 0
          Struppi
          1. 0
            Patrick Andrieu
            1. 0
              Patrick Andrieu
              1. 0
                Mathias Brodala
                1. 0
                  Patrick Andrieu
                  1. 0
                    Mathias Brodala
                2. 0
                  Patrick Andrieu
  2. 0

    iBox^W Eibox

    Mathias Brodala
    1. 0
      Patrick Andrieu
      1. 0
        Mathias Brodala
        1. 0
          Patrick Andrieu
          1. 0
            Mathias Brodala
            1. 0
              Patrick Andrieu
        2. 0
          Detlef G.
  3. 0
    Detlef G.
    1. 0
      Patrick Andrieu
      1. 0
        Detlef G.
        1. 0
          Patrick Andrieu
          1. 0
            Patrick Andrieu
          2. 0
            Patrick Andrieu
          3. 0
            Detlef G.
            1. 0
              Patrick Andrieu
              1. 0
                Patrick Andrieu
                1. 0

                  Eibox, die 7.!

                  Patrick Andrieu
                  1. 0
                    Patrick Andrieu
                  2. 0
                    Patrick Andrieu
                    1. 0
                      Detlef G.
                    2. 0
                      Detlef G.
                      1. 0
                        Patrick Andrieu
                        1. 0
                          Detlef G.
                          1. 0
                            Patrick Andrieu
                            1. 0
                              Struppi
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Struppi
                            2. 0
                              Patrick Andrieu
                            3. 0
                              Detlef G.
                              1. 0
                                Patrick Andrieu
                                1. 0
                                  Detlef G.
                            4. 0
                              Patrick Andrieu
                              1. 0
                                Detlef G.
                                1. 0
                                  Patrick Andrieu
                                  1. 0
                                    Detlef G.
                                    1. 0
                                      Patrick Andrieu
  4. 0
    Detlef G.
    1. 0
      Patrick Andrieu