2012-12-03 8 views
5

Mam jQuery niestandardową zawartość przewijacza na mojej stronie internetowej wewnątrz div. Zawartość div ma parametr ("#content").hide(). Identyfikator div jest widoczny po załadowaniu strony, a niestandardowy scroller zawartości jQuery działa idealnie.jQuery niestandardowa zawartość przewijacza nie jest wyświetlana, gdy div ma parametr ukryj

Ale jeśli zawartość div nie jest widoczna po załadowaniu strony, niestandardowy przewijacz treści jQuery nie jest widoczny i nie działa. Zauważyłem, że gdy kurczysz się lub powiększasz okno, wyświetla się przewijak. Mam mały przykład na ten adres URL: http://www.frantatoulen.wz.cz/

Gdzie może być problem?

Odpowiedz

10

Problem polega na tym, że gdy #content jest ukryty, skrypt wtyczki nie może obliczyć długości treści (ukryty element ma zerowe wymiary). Z tego powodu skrypt zakłada, że ​​zawartość nie potrzebuje paska przewijania.

Roztwór A:

Trzeba wezwać aktualizacji metodę wtyczki po swoim przełącza treści i staje się widoczny (strona plugin ma informacji i przykładów wykorzystania metod i parametrów). Wewnątrz funkcji click, dodać następujące na koniec:

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

Uwaga: przewijania działa przy zmianie rozmiaru przeglądarki, ponieważ automatycznie wywołuje metodę aktualizacji w przypadku zmiany rozmiaru okna.

Roztwór B:

można po prostu ustawić updateOnContentResize parametr opcji do prawdziwej. To auto wywołuje aktualizacji metodę za każdym razem swoje treści zmienia się długość:

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

Thx, działa doskonale. Jesteś wothy;). – user1871954

+1

Rozwiązanie B działa idealnie, dzięki! –

+0

$ ("# zawartość"). MCustomScrollbar ("aktualizacja"); Uratowałem mój dzień, dzięki – David

Powiązane problemy