Eigenschaften des onscroll Event-Objektes

JavaUncle

Mitglied
Hallo

ich frage per
Code:
document.getElementById("meinScrollbaresDIV").onscroll = function(e) {
if(!e) e = window.event;
}

ab ob ein Element gescrollt wird. Nun brauche ich die Position der Scrollbars, sprich wieviel Pixel nach rechts bzw. nach unten gescrollt wurde. Ich nehme an das diese Eigenschaften *irgendwo* in diesem Event-Objekt "e" drin stecken, nur finde ich keine brauchbare Referenz im Netz zum onscroll-Event.

Habt Ihr einen heißen Tipp für mich

Gruß
JavaUncle
 
Leider hängt die Information nicht am Event-Objekt, ich würde sie auch dort erwarten.
Schau dir stattdessen mal die Eigenschaften (scrollLeft, scrollTop, scrollWidth und scrollHeight) am Element an.
 
Danke für den Tipp! Die Eigenschaften kannte ich bereits, ich kann auch die Scrollposition abfragen und mit Hilfe des onscroll-Events darauf eingehen. Das Problem dabei ist nur, das es tierisch ruckelt. Daher dachte ich dies könnte ein schnellerer Weg sein...

Gruß
JavaUncle
 
mit scrollTop oder scrollLeft wäre dies möglich.

Code:
<html>
    <head>
        <script type="text/javascript">
            window.onload = function () {   
                document.getElementById('containerDIV').addEventListener("scroll",showme,true);
            }

            function showme (e) {
                var t = e.target; // ie brauch e.srcElement

                document.getElementById('test').innerHTML = t.scrollTop;
            }        

        </script>
    </head>
    <body>
        <div style="height:300px;overflow:auto;" id="containerDIV">
            viel text viel textviel text viel text viel text viel text
viel...
        </div>
        <div id="test"></div>
     </body>
</html>

da war wer schneller ;) aber ruckeln sollte das nicht es kommt aber auch darauf an was Du reinlädst.
 
Ich lade ein riesiges DIV rein, das bis zu 2000 Elemente enthalten kann. Habe es aber auch schon auf eine Hand voll Elemente reduziert (100 DIV's mit wenig Text), ruckelt trotzdem. Soweit ich weis ist JS Single-Threaded und kann rein physikalisch gesehen nicht öfter als alle 0,25 msec etwas tun.

Gruß
JavaUncle
 
Also bei 2000 Elementen kann ich mir schon vorstellen das es langsam hops geht aber bei 100 ist das nun sehr seltsam.

Die Probleme kenn ich nur wenn irgendwelche FlashFilme abgespielt werden , war aber auch von Browser zu Browser unterschiedlich was sich ja nochmal durch das OS zieht.

FF Ubuntu + Flash Film + JS da wirds rucklig.
FF Windows + Flash Film + JS läuft hingegeben prima

Wobei es da bei dem IE auch nochmal zu Unterschieden kam zwischen den Rechnern komischer weise.

Da Du aber nur Text in den Layern hast sollte es normal nicht ruckeln , aber es sind a) Browser Interne Scrollbalken und b) nur Text.Also wirklich erklären kann ich mir das nun nicht.

Eventuell hängt es auch an der größe des DIV's.
 

Neue Beiträge

Zurück