y-Possition nach scrollen
jako
- javascript
0 wahsaga0 Gernot Back
Hallo,
ich möchte eine Funktion aufrufen, sobald ein bestimmter Absatz durch scrollen in der Datei eine bestimmte y-Position erreicht hat.
Mein Versuch, im folgenden Code funktioniert leider nicht ganz.
Zum Anzeigen der Y-Position des Absatzes 'Absatz' habe ich einen Alert eingefügt (ein bisschen nervig, man muß ihn dreimal wegklicken, aber für den Test reichts)
Mit offsetTop kann ich zwar die eingängige y-Position herausbekommen, nach dem scrollen verändert sich der Wert aber nicht - vielleicht wird nur von der Oberkante des Dokuments und nicht des Fensters gemessen ?
Ansich wollte ich über 'if (yPos < 240)' die Funktion aufrufen - funktioniert aber so leider nicht...
vielleicht hat jemand eine Idee ?
<html>
<head>
<title>Unbenanntes Dokument</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
p { margin-top: 400; }
</style>
<script type="text/javascript">
function wechsel (){
var yPos = document.getElementById('Absatz').offsetTop;
//if (yPos < 240)
alert (yPos);
}
window.onscroll = wechsel;
</script>
</head>
<body>
<p id="Absatz">von hier soll die y-Position bestimmt werden</p>
<p>Mitte</p>
<p>Ende</p>
</body>
</html>
hi,
Mit offsetTop kann ich zwar die eingängige y-Position herausbekommen, nach dem scrollen verändert sich der Wert aber nicht - vielleicht wird nur von der Oberkante des Dokuments und nicht des Fensters gemessen ?
Die Position eines Flecks auf der Klopapierrolle ändert sich ja schliesslich auch nicht, wenn du's nach Gebrauch wieder aufwickelst ...
vielleicht hat jemand eine Idee ?
Unter http://www.quirksmode.org/viewport/compatibility.html findest du eigentlich alles, was du an Eigenschaften brauchst.
gruß,
wahsaga
Hallo jako,
ich möchte eine Funktion aufrufen, sobald ein bestimmter Absatz durch scrollen in der Datei eine bestimmte y-Position erreicht hat.
du möchtest durch alle OffsetParent-Vorfahrenselemente bis ausschließlich zu dem Element, in dem gescrollt wird, die offsetTop-Werte deines zu überprüfenmden Elementes aufaddieren und mit dem scrollTop-Wert des Elements vergleichen, in dem es scrollt.
Sollte es sich bei dem scrollenden Element um ein BODY-Element handeln und um kein über overflow:auto oder overflow:scroll auf scrollbar geschaltetes anderes Element, so folge Wahsagas Link.
Gruß Gernot