2012-12-03 10 views
5

Ich habe jQuery benutzerdefinierten Inhalt Scroller auf meiner Website innerhalb einer div. Der Inhalt div hat den Parameter ("#content").hide(). Die div ist sichtbar, wenn die Seite geladen wird und der benutzerdefinierte Scroller von jQuery einwandfrei funktioniert.jQuery benutzerdefinierten Inhalt Scroller nicht angezeigt, wenn Div Parameter verbergen

Wenn jedoch der Inhalt div beim Laden der Seite nicht sichtbar ist, ist der benutzerdefinierte Scroller jQuery nicht sichtbar und funktioniert nicht. Mir ist aufgefallen, dass beim Scrollen oder Vergrößern des Fensters der Scroller angezeigt wird. Ich habe kleines Beispiel für diese URL: http://www.frantatoulen.wz.cz/

Wo könnte das Problem sein?

Antwort

10

Das Problem ist, dass, wenn #content ausgeblendet ist, das Plug-in-Skript die Inhaltslänge nicht berechnen kann (ausgeblendetes Element hat keine Dimensionen). Aus diesem Grund geht das Skript davon aus, dass der Inhalt keine Bildlaufleiste benötigt.

Lösung A:

Sie benötigen die Update Methode des Plugins nach dem Inhalt wechselt rufen und wird sichtbar (Plugin Homepage hat Informationen und Beispiele zur Verwendung von Methoden und Parameter). In Ihrem Klick-Funktion, fügen Sie die folgenden am Ende:

$("#tlacitko").click(function(){ 
    $("#content").toggle(); 
    $("#content").mCustomScrollbar("update"); 
}); 

Hinweis: Die Scrollbar funktioniert, wenn Sie den Browser die Größe, weil es die Update-Methode auf Fenster Resize-Ereignis automatisch aufruft.

Lösung B:

Sie können einfach stellen Sie die updateOnContentResize Option Parameter wahr. Diese automatische ruft die Update Methode jedes Mal Ihre Inhalte Längenänderungen:

$("#content").mCustomScrollbar({ 
    advanced:{ 
     updateOnContentResize:true 
    } 
}); 
+0

Thx, es funktioniert perfekt. Du bist wothy;). – user1871954

+1

Lösung B funktioniert perfekt, danke! –

+0

der $ ("# content"). MCustomScrollbar ("update"); habe meinen Tag gerettet, danke – David