2012-08-08 13 views
7

Używam ładnego paska przewijania Jquery dla div, ale gdy zawartość div dynamicznie rośnie, nie pokazuje paska przewijania. Domyślny pasek przewijania systemu Windows działa dobrze, jeśli usunę ładny przewijanie. Czy ktoś może mi pomóc rozwiązać ten problem?Jquery Nice scroll nie działa

Html

<div id="div-to-scroll"> 
</div> 

Script

$(document).ready(function(e) { 
    var nice = $("#div-to-scroll").getNiceScroll(); 
    $("#div-to-scroll").niceScroll(); 
    $("#div-to-scroll").getNiceScroll().resize(); 
}); 

to jest mój przykładowy kod.

+0

Czy potrafisz pokazać swoje rozwiązanie? – stetro

+0

Nie mam rozwiązania. – gaurang171

+0

sry ;-) Sprawdziłem obecny stan kodu :-) – stetro

Odpowiedz

16

Wreszcie to działa na mnie.

$("#div-to-scroll").scroll(function(){ 
    $("#div-to-scroll").getNiceScroll().resize(); 
}); 
1

Możliwe przyczyny:
1- Może zapomniałeś podać wysokość div. naprawić swój div wysokości.
2- również jeśli twój div jest zmiennoprzecinkowy na szerokości, to również szerokość.
Remmember że div style powinny posiadać: overflow-y: hidden;
UPDATE
spróbuj zmienić rozmiar() za każdym razem gdy funkcja przewijania:

$("div-to-scroll").slideDown(function(){ 
    $("div-to-scroll").getNiceScroll().resize(); 
}); 
+0

Tak, wszystko co zrobiłem. chodzi o to, kiedy ładuje się okno, ale po tym, jak zacznę dołączać zawartość, nie działa. – gaurang171

+0

@ keyuratcodebins.com co się dzieje po dodaniu treści? czy przestaje przewijać lub wyświetla całą zawartość w tym samym czasie? – osyan

+0

Zatrzymuje przewijanie – gaurang171

9

dla mnie działa tylko z

$("#div-to-scroll").mouseover(function() { 
    $("#div-to-scroll").getNiceScroll().resize(); 
}); 
+0

Skąd się wzięło 'mouseover'? – Blazemonger

1
$("html").mouseover(function() { 
    $("html").getNiceScroll().resize(); 
}); 

Aby pasek przewijania na całe ciało

+0

Druga linia ma dodatkowe '#'. – Raptor

+1

@Raptor Tak, wystarczy postępować zgodnie ze składnią. (Selektor jest tutaj nieistotny) –

2

UPDATE: Nowa funkcja znaleziony!

var setScroll = function(i) { 
     if($(i).length>0) 
     $(i).niceScroll().updateScrollBar(); 
} 

wywołać tę funkcję zaktualizować niceScroll

setScroll(".classWithNiceScroll"); 
1

Wykonaj:

// Scroll X Axis 
$("#mydiv").getNiceScroll()[0].doScrollLeft(x, duration); 
// Scroll Y Axis - 
$("#mydiv").getNiceScroll()[0].doScrollTop(y, duration); 

czyli

// Scroll X Axis 
$("#mydiv").getNiceScroll(0).doScrollLeft(x, duration); 
// Scroll Y Axis - 
$("#mydiv").getNiceScroll(0).doScrollTop(y, duration); 

Uwaga [0] po getNiceScroll()

+0

To zadziałało dla mnie. – Banago