2017-09-08 1 views
0

Ich weiß, dass es OffSet() gibt. und Position().jQuery bekomme Element-Offset vom Anfang der Seite

aber beide funktionieren nicht in meinem Fall. Ich muss den Abstand vom oberen Ende des Fensters eines Elements in absoluter Position berechnen. Das Problem bei diesen Methoden besteht darin, dass sie den Versatz nicht vom Anfang der Seite, sondern vom übergeordneten Element zurückgeben, das den absoluten DIV enthält. Also muss ich den übergeordneten Container überspringen und den tatsächlichen Offset vom oberen Rand der Seite erhalten.

Einige Ideen?

Danke

Antwort

0

Mein schlechtes!

Ich bin ein Idiot :-)

I-Code-up gemischt und die Aktualisierung nicht, was ich sollte. Am Ende habe ich .offset() verwendet. es macht genau das, was ich brauchte.

0

<!doctype html> 
 
<html lang="en"> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>offset demo</title> 
 
    <style> 
 
     p { 
 
      margin-left: 10px; 
 
     } 
 
    </style> 
 
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
 
</head> 
 

 
<body> 
 

 
    <p>Hello</p> 
 
    <p>2nd Paragraph</p> 
 

 
    <script> 
 
     var p = $("p:last"); 
 
     var offset = p.offset(); 
 
     p.html("left: " + offset.left + ", top: " + offset.top); 
 
    </script> 
 

 
</body> 
 

 
</html>

Vom jQuery .offset() documentation:

The .offset() Methode ermöglicht es, die aktuelle Position eines Elements abzurufen (insbesondere in den Grenzkasten, der Ränder ausgeschlossen) relativ zu dem Dokument . Vergleichen Sie dies mit .position(), die die aktuelle Position relativ zum Offset-Parent abruft. Wenn ein neues Element über ein vorhandenes Element zur globalen Manipulation positioniert wird (insbesondere zum Implementieren von Ziehen und Ablegen), ist .offset() nützlicher.

Verwandte Themen