web-dev-qa-db-ja.com

Jqueryニーススクロールが機能しない

DivにJqueryNiceスクロールバーを使用していますが、divのコンテンツが動的に増加すると、スクロールバーが表示されません。ニーススクロールを削除すると、Windowsのデフォルトのスクロールバーが正常に機能します。誰かが私がこの問題を解決するのを手伝ってくれる?

HTML

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

脚本

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

これは私のコードサンプルです。

7
gaurang171

最後に、これは私のために働きます。

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

私にとっては

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

更新:新しい関数が見つかりました!

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

この関数を呼び出してniceScrollを更新します

setScroll(".classWithNiceScroll");
2
Code Spy
$("html").mouseover(function() {
    $("html").getNiceScroll().resize();
});

スクロールバーを全身に表示するには

1
Banty Roy

いくつかの考えられる理由:
1-divの高さを指定するのを忘れた可能性があります。 divの高さを修正します。
2-また、divの幅がフロートの場合は、その幅も修正します。
DIV STYLEには次のものが必要であることを忘れないでください:overflow-y: hidden;
[〜#〜] update [〜#〜]
下にスクロールするたびにresize()関数を使用してみてください。

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

これを行う:

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

または:

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

getNiceScroll()の後の_[0]_に注意してください

1
Sandeep