Ergebnis 1 bis 14 von 14
  1. #1
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    Element unter Position ermitteln

    Gibt es mit JS und/oder jQuery die Möglichkeit zu ermitteln, welches Element (id wird gesucht) sich an einer bestimmten X/Y Koordinate im Dokument befindet? In einem horizontal scrollbaren div würde ich gern ermitteln, welches Element sich gerade in der Mitte des sichtbaren Bereichs befindet. Deshalb suche ich die Möglichkeit, über Koordinaten abzufragen, welche ID dort gerade liegt.
    Geändert von mikdoe (27-12-2013 um 19:26 Uhr) Grund: Gelöst

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.565

    AW: Element unter Position ermitteln


  3. #3
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    AW: Element unter Position ermitteln

    Ah, cool. Sieht aber sehr browserabhängig aus. Gibt es auch eine jQuery Entsprechung dafür?

  4. #4
    j-l-n Guest

    AW: Element unter Position ermitteln

    Wäre das mit offset das richtige oder mit .position()?

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.565

    AW: Element unter Position ermitteln

    @Julian: offset und position geben die Position eines Elements, das du schon hast, zurück. Mikdoe hätte gernen den umgekehrten Weg: von einer bekannten Position das Elemnt.

    @mikdoe: ich hab' keine Ahnung, ob jQuery da was hat, aber so groß ist der Unterschied nicht... was du machen musst, damit es in allen Browsern läuft steht eigentlich schon auf der Quirksmodeseite.

  6. #6
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    AW: Element unter Position ermitteln

    Frage: Wenn ich also dafür sorge, dass auf meiner angegebenen Position auf jeden Fall nur ein <li> liegen kann bin ich mit var receiver = document.elementFromPoint(evt.clientX,evt.clientY); für alle Browser sicher? Ich frage, weil ich bezüglich der Zeile if (receiver.nodeType == 3) { // Opera etwas unsicher bin. Warum braucht der Opera hier eine Sonderbehandlung? Was ist Typ 3?

  7. #7
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    AW: Element unter Position ermitteln

    Habe das mal auf Entwicklung horizontaler Endloskalender eingebaut. Die Funktion document.elementFromPoint(xpos,ypos).id liefert aber immer 'streifen'. Ich hätte aber gern die ID des darunter liegenden <li> Elements, weil es mir sonst nichts nützt. Ich will ja damit ermitteln, welcher Tag sich in dem Moment in der Mitte von id "streifen" befindet. Wie macht man das?

    Wenn ich id "streifen" kurz auf display='none' setzt wie im Artikel beschrieben liefert die Funktion garkein Ergebnis und die ganze Animation hakelt.
    Geändert von mikdoe (26-12-2013 um 13:56 Uhr)

  8. #8
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.565

    AW: Element unter Position ermitteln

    Das mit dem svt.clientX brauchst du nur, wenn du wissen willst, welches Element sich unter der Maus befindet. Da du ja eine feste Position hast, kannst du einfach die Mitte der Darstellung nehmen.

    .nodeType === 3 bedeutet, dass die Node eine Textnode ist. Da du diese nicht haben willst, musst du da dann das Elternelement nehmen.

    Bei deinem Test ist ypos einfach noch etwas zu weit oben - addiere doch einfach mal 10 und nicht 1 dazu, dann solltest du das <td> bekommen. Von dem kannst du dich dann zu dem <li> hochhangeln.

    PS: Eine <table> mit genau einer Zeile und einer Spalte ist jetzt nicht dein Ernst...

  9. #9
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    AW: Element unter Position ermitteln

    korbinian, wenn ich 10 addiere liefert die Funktion nichts mehr. Aber ich hatte die ohnehin eine E-Mail geschickt, die auch erklärt, warum die Tabelle derzeit nur eine Zeile mit einer Zelle enthält. Da kommt natürlich noch mehr aber das scheitert im Moment an diversen CSS Problemen. Steht alles in der Mail.

  10. #10
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.565

    AW: Element unter Position ermitteln

    Doch, die Funktion liefert schon was, aber das Element (das <td>) hat keine ID. Deswegen wird nichts ausgegeben. Ich schau' mir deine Mail am Nachmittag mal an.

  11. #11
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    AW: Element unter Position ermitteln

    Hast Recht, ABER: receiver.parentNode.id gibt nur die <li> ID aus, wenn sein Rahmen exakt genau in der Mitte steht. Zwischendrin bleibt die Ausgabe auch hier leer.
    receiver.parentNode.nodeType und receiver.nodeType sind beide zu jeder Zeit 1.
    Geändert von mikdoe (27-12-2013 um 14:05 Uhr)

  12. #12
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.565

    AW: Element unter Position ermitteln

    Das Elternelement von dem <td> ist ja auch nicht das <li>, sondern ein <tr>... du musst da so lange nach oben gehen, bis .nodeName gleich "LI" ist.

  13. #13
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.520

    AW: Element unter Position ermitteln

    Habs gepeilt!! Hammer.
    HTML-Code:
    var receiver = document.elementFromPoint(xpos,ypos);
    var nname = receiver.nodeName;
    while (nname != 'LI') {
    	receiver = receiver.parentNode;
    	nname = receiver.nodeName;
    }
    Und receiver.id enthält genau das, was ich gesucht habe!!

    Danke dir Korbinian!

  14. #14
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.565

    AW: Element unter Position ermitteln

    Bitte - gern geschehen.

Ähnliche Themen

  1. HTML Element 100% ermitteln
    Von anna_frankfurt im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 16-01-2010, 22:23
  2. aufrufendes Element ermitteln
    Von anna_frankfurt im Forum JavaScript
    Antworten: 9
    Letzter Beitrag: 26-05-2009, 10:08
  3. Element unter Maus-Pfeil ermitteln
    Von poncho im Forum JavaScript
    Antworten: 5
    Letzter Beitrag: 11-07-2008, 12:57
  4. x und y Position ermitteln
    Von seven-12 im Forum JavaScript
    Antworten: 13
    Letzter Beitrag: 23-03-2006, 13:10
  5. aktuelle Position eines HTML Element ermitteln
    Von huebnerm im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 14-06-2005, 17:01

Lesezeichen

Berechtigungen

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