tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
0
ZUGRIFFE
3148
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    818
    Hallo.

    Ich habe eine einfache Funktion, welche mir ein DIV scrollt.
    Hier kurz der code
    Code javascript:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    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
    Geändert von mille (01.09.06 um 18:42 Uhr)
     
    man wird erwachsen ....

Ähnliche Themen

  1. Javascript geht in IE7.0 nicht
    Von Hattrix im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 02.09.08, 20:16
  2. Javascript scrollen ohne Scrollbar
    Von luukvh im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 09.11.07, 17:22
  3. Antworten: 9
    Letzter Beitrag: 03.06.05, 22:06
  4. Maus - Scrollen geht nicht immer
    Von Chandini im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 07.02.05, 22:44
  5. Formularcheck mit Javascript geht nicht
    Von badi im Forum Javascript & Ajax
    Antworten: 11
    Letzter Beitrag: 29.12.02, 14:19