Javascript scrollen (geht nicht immer - Ausweg ohne javascript)

mille

Erfahrenes Mitglied
Hallo.

Ich habe eine einfache Funktion, welche mir ein DIV scrollt.
Hier kurz der code
Javascript:
function scrollDenDiv(val){

    
    clearTimeout(timer); 
    d=document.getElementById('content');

    y=d.scrollTop;

alert("scrollheight: "+d.scrollHeight
        +"\noffset: "+d.offsetHeight
        +"\ntop: "+d.scrollTop);
    // hochscrollen
    if(val == 'up'){
        if(y >= speed){
            y -= speed;
            d.scrollTop = y;
        } else // end if
            d.scrollTop = 0;
            
        timer = setTimeout('scrollDenDiv(\''+val+'\')',50);
    }// end if

    // runterscrollen    
    if(val == 'down'){
        if( y <= d.scrollHeight - d.offsetHeight + speed){
            y += speed;
            d.scrollTop = y;
        } else // end if
            d.scrollTop = d.scrollHeight - d.offsetHeight;
            
        timer = setTimeout('scrollDenDiv(\''+val+'\')',50);
    }// end if
}// end scrollDiv

In der Mitte seht ihr ein alert. Dieses war beim Testen notwendig. Worauf ich jetzt auch zu sprechen komme.
Ich habe die Seite gerade in diversen Browsern getestet und leider feststellen müssen, das Opera unter der Version 9.0 mit der Funktion nicht klarkommt. Netscape unter der Version 8 ebenfalls nicht.
Für diese Browser ist scrollHeight immer gleich der offsetHeight.
Da ich nun sowieso eine Lösung ohne Javascript realisieren muss, möchte ich diesen Fall gleich mit abfangen.

Wie soll die Lösung aussehen?
Das Div soll mit normalen Scrollbar zu scrollen sein. Beim Aufruf der Seite wird eine init() Funktion aufgerufen, die den Scrollbar ausblendet und den eigenen Scrollbar anzeigt.Hat ein Nutzer kein Javascript an, kann der Standard-Scrollbar nicht ausgeschlaten werden und somit kann jeder User scrollen.
Aber dieser Test bringt ja nix, bei Browsern die Javascript können, allerdings trotzdem bei dem Javascript-Scrolling in Schwulitäten geraten.

Wie kann ich jene Kandidaten abfangen?
Ein einfacher Vergleich ob die scrollHeight = offsetHeight ist, bringt leider nichts, da es auf der Seite auch Inhalte gibt, nicht gescrollt werden müssen, aber dennoch der eigene Scrollbar zu sehen sein muss.


MfG
und danke :)
mille
 
Zuletzt bearbeitet:
Zurück