4

jQueryを使用してコンテナのサイズを取得する際に大きな問題がありますwidth(), outerWidth(), innerWidth()

このURL を IE8でロードすると、幅が 30,000 を超えますが、他のすべてのブラウザーは正しい値である 1100 マーク前後です。

この幅の値は、個々のスライダーのサイズ変更に関するあらゆる種類の計算に使用されるため、スライダーで問題が発生します。

幅の不一致を確認するためのアラートを残しておきました。これは id コンテナーを持つ div で呼び出されています。

特定の jQuery 呼び出しは次のとおりです (他のプラグインによる競合を使用しません)。

alert(jQuery_1_6_2('#container').width());

outerWidth()言及している他のいくつかの投稿を見てきましたinnerWidth()が、これらも正しいサイズを教えてくれません.

すべてのスライダーが一列に並んでいると考えているのかもしれませんが、それでもこれらはそれぞれ幅が 600px しかないため、30,000px ではなく 3,600px 前後の値しか取得できません +

これはレスポンシブであるため、問題を解決する固定幅も使用できません。私が達成できる最善の方法は、 #container に最大幅の値を設定することですが、幅の値の正確な値はまだ得られません。

4

1 に答える 1

5

$(window).load(function(){...});文書準備の代わりに使用してみてください。

それでも機能しない場合は、タイマーを使用して DOM を完全にレンダリングすることができます。

jQuery_1_6_2(document).ready(function () {
    setTimeout(function () {
        alert(jQuery_1_6_2('#container').width());

        jQuery_1_6_2('#accordion-wrapper').raccordion({
            speed: 1000,
            sliderWidth: jQuery_1_6_2('#container').width(),
            sliderHeight: 360,
            autoCollapse: false
        });
    }, 100);
});
于 2013-05-15T12:13:47.023 に答える