2016-04-28 9 views
2

私はページ上にクラス.randomの画像をランダムに配置するこの簡単なスクリプトを使用しています。これを1つのクラスを使用してページ上の複数の画像に適用して、ページ上に画像が散らばるようにする方法を試してみましょう - 今は複数の画像に適用すると同じランダムな配置を使用します。ランダムポジション複数の画像

 $(document).ready(function() { 
      var bodyWidth = document.body.clientWidth 
      var bodyHeight = document.body.clientHeight; 
      var randPosX = Math.floor((Math.random()*bodyWidth)); 
      var randPosY = Math.floor((Math.random()*bodyHeight)); 

      $('.random').css('left', randPosX); 
      $('.random').css('top', randPosY); 

     }); 
+0

あなたは、セレクタを使用している場合、 '$( 'ランダム')'それは、このようなクラスを持つすべてのイメージに適用されます(つまり、あなたのすべての画像) - おそらくあなたはリストをループし、個々にそれぞれのポジションを適用したいと思うかもしれません – ochi

答えて

2

jQuery eachを使用すると、セレクタの一致を反復処理できます。例:

$(document).ready(function() { 
    var bodyWidth = document.body.clientWidth 
    var bodyHeight = document.body.clientHeight; 
    $('.random').each(function() { 
     var randPosX = Math.floor((Math.random() * bodyWidth)); 
     var randPosY = Math.floor((Math.random() * bodyHeight)); 
     $(this).css('left', randPosX); 
     $(this).css('top', randPosY); 
     posLog.innerHTML = posXY 
    }); 
}); 
+0

ありがとうございました!!! "各"は完璧に働いた。 – adamo

+0

あなたは大歓迎です:) –

+0

本文に他のコンテンツがない場合は、CSSで高さを指定する必要があります(そうでなければ、Y座標には常に0が返されます) - body { height:500px; } ' – ochi

4

あなたはこれを試みることができる:

$(document).ready(function() { 
 
    var bodyWidth = document.body.clientWidth 
 
    var bodyHeight = document.body.clientHeight; 
 

 
    $('.random').each(function(idx, img) { 
 
    var randPosX = Math.floor((Math.random() * bodyWidth)); 
 
    var randPosY = Math.floor((Math.random() * bodyHeight)); 
 
    console.log(randPosY); 
 
    $(img).css('left', randPosX); 
 
    $(img).css('top', randPosY); 
 

 
    }); 
 
});
body { 
 
    height: 500px; 
 
} 
 
.random { 
 
    position: absolute; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 

 
<img class="random" src="http://lorempixel.com/200/200/"> 
 
<img class="random" src="http://lorempixel.com/200/200/"> 
 
<img class="random" src="http://lorempixel.com/200/200/"> 
 
<img class="random" src="http://lorempixel.com/200/200/"> 
 
<img class="random" src="http://lorempixel.com/200/200/">

+0

ありがとう!上記のようなクールなソリューションも素晴らしいです。 – adamo

+0

@adamo私たちが助けることができてうれしい:) – ochi