2

私がする必要があるの.project_contentは、HTMLのすべてのインスタンスに3つのCSSスタイルの1つを追加することであり、スタイルはインスタンスごとにランダムに選択する必要があります。

3つのスタイルは次のとおりです
float:left
float:right。OR
margin:auto+ width:x(の幅.project_contentが計算されx、計算された幅です)

今私はこれを持っています:

<script type="text/javascript">
$(document).ready(function(){
    var floats         = ["right","left"];                
  var rand = Math.floor(Math.random()*floats.length);           
  $('.project_content').css("float", floats[rand]);
});​​​​​​​​​​​​​
</script>

このスクリプトが私のために行っているのは、インスタンスごとに右または左を選択する代わりに、float:leftまたはfloat:rightすべてのインスタンスに適用することです。.project_content

のインスタンスごとにランダム変数を選択するようにスクリプトを取得するにはどうすればよいですか?また、計算された+をミックスproject_contentに追加するにはどうすればよいですか?本当にありがとう。margin:autowidth

4

1 に答える 1

7

セット全体の単一のランダムな値ではなく、セット内の要素のランダムなスタイルを取得する必要があります。一致した要素ごとに関数が呼び出されるため、これはを使用して実行できます。.css( propertyName, function(index, value) )

$('.project_content').css("float", function () {
  var rand = Math.floor(Math.random() * floats.length);
  return floats[rand];  
})​;

デモ

ミックスに追加marginして追加するには、 (複数のプロパティの1つを変更する必要があるため)width使用できなくなりますが、次を使用して実行できます。css().each()

var styles = [ "left", "right", "margin" ];
$('.project_content').each(function () {
  var randomStyle = styles[Math.floor(Math.random() * floats.length)];
  if (randomStyle == "left" || randomStyle == "right") {
    $(this).css('float', randomStyle);
  } else { // margin
    $(this).css('margin', 'auto')
           .css('width', your_calculated_width);
  }
})​;
于 2012-09-07T22:17:10.197 に答える