5

私のウェブサイトの中にjQueryカスタムコンテンツスクローラーがありdivます。divコンテンツにはパラメータがあります("#content").hide()divページが読み込まれ、jQueryカスタムコンテンツスクローラーが完全に機能すると、が表示されます。

ただしdiv、ページの読み込み時にコンテンツが表示されない場合、jQueryカスタムコンテンツスクローラーは表示されず、機能しません。ウィンドウを縮小または拡大すると、スクローラーが表示されることに気づきました。このURLに小さな例があります:http://www.frantatoulen.wz.cz/

問題はどこにあるのでしょうか?

4

1 に答える 1

10

問題は、#content が非表示の場合、プラグイン スクリプトがコンテンツの長さを計算できないことです (非表示の要素の次元はゼロです)。そのため、スクリプトは、コンテンツにスクロールバーが必要ないことを前提としています。

ソリューション A:

コンテンツが切り替えられて表示されるようになったら、プラグインの更新メソッドを呼び出す必要があります (プラグインのホームページには、メソッドとパラメーターの使用に関する情報と例があります)。クリック関数内で、最後に次を追加します。

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

注: ウィンドウのサイズ変更イベントで更新メソッドが自動的に呼び出されるため、ブラウザーのサイズを変更してもスクロールバーは機能します。

ソリューション B:

updateOnContentResizeオプション パラメータをtrueに設定するだけです。これにより、コンテンツの長さが変更されるたびに更新メソッドが自動的に呼び出されます。

$("#content").mCustomScrollbar({
    advanced:{
        updateOnContentResize:true
    }
});
于 2012-12-03T15:12:43.100 に答える