Ermittelt die genaue Position für einen Klick auf ein verknüpftes Bild mit jquery

7

Ich arbeite an einer App, die das direkte Markieren von Fotos per Klick ermöglicht (wie Facebook, flickr, et al). Allerdings kann ich nicht die richtigen Koordinaten für einen Klick auf ein Foto registrieren. Das Problem ist, dass die x-Koordinaten absolut x Abstand eines Klicks innerhalb des Browserfensters sind (anstatt innerhalb des Fotos), während die y-Koordinaten oft negativ oder unglaublich klein sind (negativ nahe oben, klein nahe unten). Dies sind die Werte, die ich erhalte, wenn ich in der Nähe der oberen linken Ecke klicke (was sich bei oder nahe bei 0 registrieren sollte: "x" = & gt; "219", "y" = & gt; "- 311" ... 219 scheint ungefähr rechts beim Messen der Entfernung von der linken Seite des Browserfensters, aber der Abstand sollte innerhalb des Fotobereichs liegen)

Ich erfasse gerade Klickereignisse und Koordinaten auf einem Foto mit einem normalen Link (der Link enthält andere relevante Fotodaten) und führe die Berechnungen durch (dieselben Berechnungen wie in den jquery-Dokumenten), bevor ich sie an meine Rails-App weitergebe. Ich bezweifle, dass die Methode viel mit den fehlerhaften Werten zu tun hat, obwohl ich vermute, dass die Mathematik oder etwas Css-Eigenart fehlerhaft sein könnte. In jedem Fall bin ich absolut verrückt.

JS:

%Vor%

});

%Vor%

CSS:

%Vor%     
Optimate 14.07.2009, 23:29
quelle

2 Antworten

22

für Ihr x und y versuchen Sie dies:

%Vor%

lassen Sie mich wissen, wenn das nicht funktioniert

BEARBEITEN: zur Verdeutlichung - Sie erhalten den linken und oberen Versatz direkt vom dom-Element. Der Grund, warum ich vorschlage, dass Sie die Funktion jQuery offset () verwenden, ist, dass jQuery mit höherer Wahrscheinlichkeit den richtigen Browser für die Positionskreuzung berechnet.

BEARBEITEN 2: Können Sie versuchen, das Klickereignis dem Bild im Gegensatz zum Link zuzuordnen. Ich habe einen schleichenden Verdacht, dass der Link seinen oberen Versatz als die Unterseite des Elements, das es einkapselt, berichtet ...

    
Darko Z 14.07.2009, 23:33
quelle
1

Meine Funktion ist:

%Vor%

rufen Sie an:

%Vor%

Hinweis: verwendet schnelle float2int .

    
Arris 20.08.2015 11:33
quelle

Tags und Links