9

I am using Jquery nice Scroll bar for div, but when content of div increases dynamically its not showing scroll bar. Windows default scroll bar works fine if i remove nice scroll. Can anyone help me to solve this problem?

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();
});

this is my code sample.

Suresh Kamrushi
  • 15,627
  • 13
  • 75
  • 90
gaurang171
  • 9,032
  • 4
  • 28
  • 30

6 Answers6

18

Finally this works for me.

$("#div-to-scroll").scroll(function(){
  $("#div-to-scroll").getNiceScroll().resize();
});
gaurang171
  • 9,032
  • 4
  • 28
  • 30
11

for me works just with

$("#div-to-scroll").mouseover(function() {
    $("#div-to-scroll").getNiceScroll().resize();
});
Troy Alford
  • 26,660
  • 10
  • 64
  • 82
2

UPDATE: new function found!

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

Call this function to Update niceScroll

setScroll(".classWithNiceScroll");
Code Spy
  • 9,626
  • 4
  • 66
  • 46
1

Some possible reasons:
1- Maybe you forgot to specify your div height. fix your div Height.
2- also if your div is float in width fix that width too.
Remmember that your DIV STYLE should have: overflow-y: hidden;
UPDATE
try using resize() function every time you scroll down:

$("div-to-scroll").slideDown(function(){
  $("div-to-scroll").getNiceScroll().resize();
});
osyan
  • 1,784
  • 2
  • 25
  • 54
  • Yes that all i have done. the thing is when window load it works but after i start to append content its not working. – gaurang171 Aug 08 '12 at 11:28
  • @keyuratcodebins.com what happen after you append content? does it stop scrolling or it show all the content at the same time? – osyan Aug 08 '12 at 12:11
  • @keyuratcodebins.com try using resize() function every time you scroll down – osyan Aug 08 '12 at 12:27
  • I have the same problem, I found that if I switch tabs on chrome and go back it starts working. any ideas? – Mark McCook Oct 10 '12 at 03:39
1
$("html").mouseover(function() {
    $("html").getNiceScroll().resize();
});

To get the scroll bar on full body

Banty Roy
  • 914
  • 6
  • 23
1

Do this:

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

or:

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

Note [0] after getNiceScroll()

Kaiido
  • 123,334
  • 13
  • 219
  • 285
Sandeep
  • 11
  • 1