3

eq()値に応じてdivのグループの'left'プロパティを変更しようとしています。私がやろうとしていることの基本的なコードを示します!どんな助けでもありがたいです

HTML:

<html>
<body>
<div class"item-holder"></div>
  <div class"item item-one"></div>
  <div class"item item-one"></div>
  <div class"item item-one"></div>
  <div class"item item-one"></div>
</div>
</body>
</html>

CSS:

.item-holder {
position:relative;
width:100px;
}
.item {
position:absolute;
width:25px;
float:left;
}

jQuery:

$(document).ready(){
var itemWidth = $('.item-holder').width()/$('.item').size();
  $('.item').css({
    'left':$('.this').eq()*itemWidth+'px'
  });
};

これは、より理にかなっている場合に投稿できる完全なコードではないことに注意してください。jQueryで左の値を作成する必要がある理由は、このコードをいくつかの異なる場所で再利用したいので、異なる番号を使用するためです。毎回「アイテム」の!どんな助けでも歓迎され、船に乗せられます

4

2 に答える 2

2

必要と思われるのはインデックスです:

$('.item').each(function(){
    $(this).css({
       'left':$(this).index()*itemWidth+'px'
    });
});

コードにいくつかのエラーがあることに注意してください:

  • あなたはおそらくあなたの最初のdivを閉じてそれを空にしたくなかったでしょう
  • =クラスを設定するときは、演算子を忘れないでください

デモンストレーション

于 2012-10-07T18:09:02.467 に答える
2

css 関数を使用できます。

.css(プロパティ名、関数(インデックス、値))

$('.item').css('left', function(ind, v){
    return (ind * itemWidth) + 'px'
})

$('.this')を使用すると、 のクラスを持つ要素を選択していることに注意してください。thisオブジェクトから jQuery オブジェクトを作成するには、thisコーディングする必要があります$(this)

于 2012-10-07T18:11:08.793 に答える