Ho bisogno di ottenere le coordinate X, Y (relative al documento in alto/a sinistra) per un elemento DOM. Non riesco a individuare alcun plugin o proprietà o metodo jQuery che possa darmeli. Posso ottenere la parte superiore e sinistra dell'elemento DOM, ma ciò può essere relativo al contenitore/genitore corrente o al documento.jQuery x y coordinate documento dell'oggetto DOM
risposta
è possibile utilizzare
Dimensions plug
[... Deprecato incluso nella versione 1.3.2 e successive jQuery]
Offset()
Prendi l'offset del primo elemento abbinato corrente, in pixel, relativo al documento .posizione()
ottiene la posizione superiore e sinistro di un elemento rispetto al suo genitore compensare.
sapendo questo, allora è facile ... (usando il mio piccolo svg project come example page)
var x = $("#wrapper2").offset().left;
var y = $("#wrapper2").offset().top;
console.log('x: ' + x + ' y: ' + y);
uscita:
x: 53 y: 177
Speranza che aiuta quello che stai cercando.
ecco un'immagine di offset() e la posizione()
utilizzando XRay
utilizzando Web Developer barra degli strumenti
Il offset la funzione lo farà per te.
Ecco l'esempio che danno:
var p = $("p:last");
var offset = p.offset();
p.html("left: " + offset.left + ", top: " + offset.top);
La mia soluzione è un plugin con "soluzioni alternative": + D. Ma funziona!
jQuery.fn.getPos = function(){
var o = this[0];
var left = 0, top = 0, parentNode = null, offsetParent = null;
offsetParent = o.offsetParent;
var original = o;
var el = o;
while (el.parentNode != null) {
el = el.parentNode;
if (el.offsetParent != null) {
var considerScroll = true;
if (window.opera) {
if (el == original.parentNode || el.nodeName == "TR") {
considerScroll = false;
}
}
if (considerScroll) {
if (el.scrollTop && el.scrollTop > 0) {
top -= el.scrollTop;
}
if (el.scrollLeft && el.scrollLeft > 0) {
left -= el.scrollLeft;
}
}
}
if (el == offsetParent) {
left += o.offsetLeft;
if (el.clientLeft && el.nodeName != "TABLE") {
left += el.clientLeft;
}
top += o.offsetTop;
if (el.clientTop && el.nodeName != "TABLE") {
top += el.clientTop;
}
o = el;
if (o.offsetParent == null) {
if (o.offsetLeft) {
left += o.offsetLeft;
}
if (o.offsetTop) {
top += o.offsetTop;
}
}
offsetParent = o.offsetParent;
}
}
return {
left: left,
top: top
};
};
utilizzati:
var p = $("#wrapper2").getPos();
alert("top:"+p.top+"; left:"+p.left);
sai che ci sono framework solo per cui non abbiamo bisogno di riscrivere il codice, giusto? I framework – balexandre
sono fantastici finché non è necessario scrivere un userscript. O quando vuoi scrivere una patch su jQuery; ci sono ancora dei motivi per sapere javascript. –
- 1. Coordinate X/Y Regex
- 2. Converti lat/long a coordinate X/Y
- 3. Posiziona componenti su coordinate arbitrarie (x, y)
- 4. WPF Popup Controllo - Trova coordinate x, y
- 5. calcolate nuove coordinate da vecchi e coordinate x ed y
- 6. Come ottenere celle (<td>) coordinate x e y nella tabella usando jQuery?
- 7. Striatura di ruby: x == y && [x, y] .uniq == [x, y]
- 8. Tracciamento Android x, y disegnare le coordinate dal percorso
- 9. gnuplot: Plotting coordinate X, Y e la loro etichetta
- 10. Come trovare elemento in Visualizza per coordinate x, y Android
- 11. HTML5: dragover(), drop(): come ottenere le coordinate x, y correnti?
- 12. Calcola la distanza tra due coordinate x/y?
- 13. per ottenere codici postali statunitensi da gis x, coordinate y
- 14. widget di schermata iniziale Android coordinate x-y
- 15. Estrai le coordinate X e Y dalla stringa
- 16. Come ricalcolare le coordinate x, y in base alla schermata
- 17. Ottieni le coordinate x e y reali degli utenti toccate
- 18. x, y = getPos() vs. (x, y) = getPos()
- 19. x-y = x + 1 + ¬y problema
- 20. Come modificare l'origine x, y della tela in basso a sinistra e capovolgere le coordinate y?
- 21. jQuery selettore di attributo: [x = y] o [x = z]
- 22. Come posso ottenere le coordinate x/y di un elemento SVG (percorso, ecc.) Che non ha gli attributi X/Y?
- 23. Dato un insieme di punti definiti nelle coordinate (X, Y, Z), interpolare il valore Z su arbitrario (X, Y)
- 24. xpath con dom documento
- 25. Combinazioni di tre numeri positivi x, y, z in modo che x + y, x - y, y + z, y - z, x + z e x - z siano quadrati perfetti
- 26. Come rendere infinito il ciclo con "x <= y && x > = y && x! = Y"?
- 27. Perché/Quando in Python `x == y` chiama` y .__ eq __ (x) `?
- 28. Differenza tra x | y e y <(x) in bash?
- 29. polimorfismo C++ ((X *) y) -> foo() vs ((X) * y) .foo()
- 30. jQuery (documento). Non sto aspettando che il DOM sia pronto
Vedi: http://docs.jquery.com/Plugins/dimensions "DEPRECATED: Come di jQuery 1.2.6, le dimensioni plugin è stato fusi in nucleo. È possibile visualizzare la documentazione completa nella categoria CSS. " Inoltre, questa è solo le posizioni relative – DMCS
se si esegue quel codice su quella pagina del progetto è possibile verificare che non è relativo ma sono valori assoluti. – balexandre
Sembra che abbiano risolto i problemi in una versione più recente di jQuery. Usare 1.3.2 sembra dare al documento le coordinate x, y come speravo. E ho provato questo in IE7, FF3 e Safari3 e sembra che si stiano comportando correttamente – DMCS