0

コンテナdivがあります。そのコンテナdivの中には、親divの幅を空けて、それぞれの間にギャップを追加したい、いくつかの小さなdivがあります。内部divの数が変わります。

この式(containerWidth-(numberOfBars * gap))/ numberOfBarsを使用して各バーのスペースを計算し、jqueryでcssを動的に変更しようとしています。

幅を変更したり、スペースを空けたりすることができません。

フィドルが付いています。

http://jsfiddle.net/MjrMq/

ありがとうございました!

4

1 に答える 1

3

;に精通している必要がありouterWidth()ます。この状況に非常によく合っていると思います。渡されるtrueと、マージンを含むコンテナの外側の幅になります。したがって、幅のアイテムがあり0、外側の幅をとる場合、幅に含めたくないパディング/マージン/ボーダーのみになります。

次に、私はあなたの論理で少し遊んだ。内側の幅ではなく、各バーの合計幅を取得し、外側の幅を使用して内側の幅を取得しました。(つまり、Container width / n -> Outer Width; Subtract padding -> Inner Width。)

更新されたフィドルを共有する前に最後に注意したいのは、次のとおりです。将来的には、最初にフィドルをテストしてください変数を作成barしましcontainerたが、どちらも定義されていません。また、使用したこと$(document).ready(...)も、同様のものもありませんでした。

まず、(適切な外幅を取得するためwidthに)に設定します。0次に、幅を次のように計算しました。

var barOuterWidth = Math.floor(containerWidth / n);
var barInnerWidth = barOuterWidth - $(".bar").outerWidth(true);

最後に'width': barInnerWidth,、幅を設定していました。

結果はこのjsFiddleにあります。右側にマージンギャップがあることに注意してください。これを軽減する方法を見つけることができると確信しています。(i == n - 1または何でもない。)

于 2012-09-12T19:41:17.317 に答える