6

私はniceScrolljQueryプラグインを使用して、オーバーフローしている一般的なブラウザーのスクロールバーを置き換えてい<div>'sます。プラグインは正常に機能していますが、(コンテンツが境界を超えていなくても)常に機能してスクロールレールを表示することはできません。<div>私の最終的な構成は次のとおりです。

$(document).ready(function () {
    $(".div-wrapper").niceScroll({
        cursorcolor: "#333",
        cursoropacitymin: 0.3,
        background: "#bbb",
        cursorborder: "0",
        autohidemode: false,
        cursorminheight: 30
    });
};

発射しようとしました$(".div-wrapper").getNiceScroll().show()が、うまくいかないようです。

助けていただければ幸いです、ありがとう

4

5 に答える 5

9

まず第一に、最後に括弧がありません-それがあなたの問題でしょうか?

autohidemodeをfalseに設定することは、ユーザーがスクロールを停止したときに消えず、スクロール中に再び表示されることを意味するだけです。残念ながら、コンテンツがオーバーフローしなければ表示されるわけではありません。

回避策として、次のように.niceScroll()を呼び出した後、id=ascrail2000の要素を明示的に表示してみてください。

$(document).ready(function () {
    $(".div-wrapper").niceScroll({
        cursorcolor: "#333",
        cursoropacitymin: 0.3,
        background: "#bbb",
        cursorborder: "0",
        autohidemode: false,
        cursorminheight: 30
    });
    $('#ascrail2000').show();
});

最後の行で行方不明のパレンを参照してください

子要素も表示する必要がある場合があります。

    $('#ascrail2000 *').show();

(この場合、要素のIDがascrail2000であることを確認してください。)

更新: veritasが指摘しているように、1ページの複数のnicescrollで機能するdiv[id^='ascrail']代わりに、より一般的なセレクターを使用すると、JavaScriptで上記を実行できます。#ascrail2000

    $("div[id^='ascrail']").show();

またはCSSの場合:

    div[id^='ascrail'] { display: block; }

または上記が機能しない場合:

    div[id^='ascrail'] { display: block !important; }

これは最も洗練された解決策ではありませんが、nicescrollプラグインにはその動作を選択するオプションがないため、現在この問題を解決する唯一の方法であると思います。幸い、nicescrollはオープンソースであり、GitHubで利用できるため、簡単にフォークしてそのようなオプションを追加したり、GitHubに機能リクエストを投稿したりできます。

于 2012-07-24T14:00:22.913 に答える
6
$(".div-wrapper").niceScroll({
    cursorcolor: "#333",
    cursoropacitymin: 0.3,
    background: "#bbb",
    cursorborder: "0",
    autohidemode: false,
    cursorminheight: 30
});
于 2012-11-02T16:12:05.063 に答える
0

コンテンツがバウンディングボックスをオーバーフローしない場合、niceScrollは何も実行しないと想定しています。これは、問題である可能性があります。niceScrollは>$overlayではないことに注意してください:scroll; ...プラグイン自体を掘り下げないと確信が持てませんが、コンテンツにスクロールが必要かどうかをテストするためのチェックが組み込まれていると思います。そうでない場合、関数はサイレントに終了します。

于 2012-07-24T10:53:20.950 に答える
0

私はグーグル検索でこの答えを見ます、たとえそれが古いとしても、誰かがこれが答えを求めているのを見れば、これは私の実用的な解決策です:

        $('#ascrail2000.nicescroll-rails').show();
        $('#ascrail2000.nicescroll-rails div').height('300px').show();

「bar」divに任意の高さを設定する必要があります。デフォルトではheight:0pxなので、表示しても何も表示されません。窓の寸法で適切な高さを計算する方が良いと思いますが、そうする必要はありません:)

于 2017-02-07T15:04:22.267 に答える
0

現在、2018年7月2日および動作中のバージョンjquery.nicescrollv3.7.6 ソースリンク

追加した後、 autohidemode: false それは私にとってはうまく機能しています。

$("#example").niceScroll({
   autohidemode: false       // it make nicescroll scroll bar visible all time
});
于 2018-07-02T15:30:00.847 に答える