kilminster: Scrollbahr geht kaputt

Hallo Leute,

ich habe ein sehr komisches Verhalten in Zusammenhang mit JQuery (ja, dort habe ich auch schon gesucht und nix dazu gefunden ;-) )

Ich habe ein Fenster, bei dem das breiteste div keine Angabe zu overflow hat, aber da die dort eingebundene Tabelle 2300 Pixel breit ist erscheint automatisch ein Scrollbalken.

Wenn ich in diesem Fenster einen Jquery Modal-Dialog öffne und wieder schließe ist der Scrollbalken weg.

Wenn ich dem oben genanten div die Eigenschaft ovewrflow: auto oder auch overflow: scroll verpasse (ich weiß ja, dass die Seite eigentlich immer einen Scollbalken benötigt), dann ist nach dem Schließen des Modaldialoges zwar immer noch ein Scrollbalken da, aber er funktioniert nicht mehr.

Ich kann ihn nur minimal bewegen und so nur ein paar zusätzliche Pixel anzeigen aber ein großer Teil meiner Tabelle bleibt unerreichbar rechts außen im off.

Wenn ich window.scrollTo(window.scrollMaxX, 0) aufrufe, dann sehe ich zwar den rechten Rand meiner Tabelle komplett, aber der Scrollbar ist weiterhin kaputt und erlaubt mir nun nur ein paar Pixel nach links zu scrollen so dass der linke Teil der Tabelle unerreichbar im off ist.

Welche Einstellung kann denn dazu führen, dass ein Scrollbalken sich so unkooperativ verhält?
(das beschriebene Verhalten tritt sowohl in einem neuen Firefox als auch in einem IE9 (vom Kunuden gewünscht) auf)

  1. Hallo!

    Wenn ich in diesem Fenster einen Jquery Modal-Dialog öffne und wieder schließe ist der Scrollbalken weg.

    Wie sieht denn die Funktion zum Aufruf der Modal Box aus?
    Fügt die bspw. ein ~~~javascript $('body').css('overflow','hidden');

    o.ä. ein?  
      
      
    Gruß Gunther
    
    1. Hallo!

      Wenn ich in diesem Fenster einen Jquery Modal-Dialog öffne und wieder schließe ist der Scrollbalken weg.

      Wie sieht denn die Funktion zum Aufruf der Modal Box aus?
      Fügt die bspw. ein ~~~javascript

      $('body').css('overflow','hidden');

      
      > o.ä. ein?  
      >   
      >   
      > Gruß Gunther  
        
      Hätte nicht gedacht, dass dann der Scrollbalken noch erscheint bzw. mit der Maus nur ein klein wenig bewegbar ist, aber mit window.scrollto() die ganze Strecke.  
      Aber ein einfügen von $('body').css('overflow','auto') nach dem Schließen des Dialoges hat das Problem tatsächlich beseitigt.  
        
      Vielen Dank!!
      
  2. Meine Herren!

    Ich kann ihn nur minimal bewegen und so nur ein paar zusätzliche Pixel anzeigen aber ein großer Teil meiner Tabelle bleibt unerreichbar rechts außen im off.

    Das klingt für mich sehr danach, als erzwingst du den Scrollbalken für den falschen Container.

    Mit den Entwicklertools (F12), speziell mit dem Element-Inspector (Rechtsklick -> "Inspect Element", "Element untersuchen" oder etwas ähnliches) kannst du dir gezielt einzelne Elemente rauspicken und überprüfen welche CSS-Regeln für dieses Element angewandt werden. Auf diese Weise sollte der Übeltäter schnell gefunden werden.

    --
    “All right, then, I'll go to hell.” – Huck Finn
    1. Meine Herren!

      Ich kann ihn nur minimal bewegen und so nur ein paar zusätzliche Pixel anzeigen aber ein großer Teil meiner Tabelle bleibt unerreichbar rechts außen im off.

      Das klingt für mich sehr danach, als erzwingst du den Scrollbalken für den falschen Container.

      Mit den Entwicklertools (F12), speziell mit dem Element-Inspector (Rechtsklick -> "Inspect Element", "Element untersuchen" oder etwas ähnliches) kannst du dir gezielt einzelne Elemente rauspicken und überprüfen welche CSS-Regeln für dieses Element angewandt werden. Auf diese Weise sollte der Übeltäter schnell gefunden werden.

      Ich habe mich vermutlich ein wenig undeutlich ausgedrückt. Ich rede nicht von einem Scrollbalken auf der HTML-Seite sondern von dem Scrollbalken, den der Browser gaaaaanz unten für die komplette Seite erstellt, wenn diese zu breit für den Bildschirm (bzw. das Browserfenster) ist.

      Ist der denn an etwas anderem als an dem window-Objekt angehängt?

      1. Meine Herren!

        Ich habe mich vermutlich ein wenig undeutlich ausgedrückt. Ich rede nicht von einem Scrollbalken auf der HTML-Seite sondern von dem Scrollbalken, den der Browser gaaaaanz unten für die komplette Seite erstellt, wenn diese zu breit für den Bildschirm (bzw. das Browserfenster) ist.

        Ist der denn an etwas anderem als an dem window-Objekt angehängt?

        Der "oberste" Scrollbalken ist am <html>-Element festgemacht. Dementsprechend kannst mit CSS so darauf Einfluss nehmen:

        :root {  
           overflow: auto;  
        }  
        /* etwas robuster, ginge auch: */  
        html {  
           overflow: auto;  
        }
        
        --
        “All right, then, I'll go to hell.” – Huck Finn