0

だからここにサイトがあります:http://graysonearle.com/newtest/#prettyPhoto/6/ それはいくつかの画像を収容するサイドバーのある小さなウィンドウにあなたを連れて行きます。私はライオンバーを使用しています。これは素晴らしいですが、50%の時間しか機能しません。これは私の経験では典型的なWebの問題ではありません。スクリプトがランダムに機能しない原因は何ですか?スクリプトが正しくロードされていることを確認するためにスローできるタグはありますか?動作する/動作しないことがわかるまでリロードするだけです。また、プラグインを呼び出す方法と関係がありますか?

<script>
$('#sidebar').lionbars();
</script>

/bodyタグの直前。別の方法でやった方が信頼性が高いでしょうか?

4

1 に答える 1

2

提示された問題は、画像がロードされる前にスクリプトが初期化されていることが原因です。

プラグインはスクロールバーの「必要性」をチェックするので、次のようになります。

lionbars.jsの371行目

// check for vertical scrollbars
if (el.get(0).scrollHeight > el.get(0).clientHeight) {
  addVScroll = true;
  // setVScrollbarWidth(el);
}

スクリプトを呼び出す前に、画像が読み込まれていることを確認する必要があります。

画像が読み込まれた後にlionbars関数を実行する、他のstackoverflowユーザーからのスクリプトをお勧めします。

jQueryのGitHubページリンクwaitForImages!

例えば、

$('#sidebar').waitForImages(function() {

    // All images are loaded, initialize the scroll bar plug-in
    $('#sidebar').lionbars();
});

ノート:

スクリプトが機能することがある理由は、画像がブラウザによってすでにキャッシュされており、スクリプトが初期化される前にドキュメントに配置されることがあるためです。

于 2012-06-03T22:21:57.117 に答える