簡體   English   中英

使用jQuery在類的每個實例上添加隨機CSS

[英]Add Random CSS on Each Instance of a Class With jQuery

我需要做的是將三種CSS樣式之一添加到HTML中的.project_content每個實例中,並且需要為每個實例隨機選擇該樣式。

三種樣式如下:
float:left
float:right
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:leftfloat:right應用於.project_content所有實例,而不是為每個實例選擇right或left。

如何讓我的腳本為project_content每個實例選擇一個隨機變量,以及如何將margin:auto +計算出的width到混合中? 非常感謝。

您需要為集合中的每個元素獲取一個隨機樣式,而不是為整個集合獲取一個隨機值。 可以使用.css( propertyName, function(index, value) ) ,因為該函數將為每個匹配的元素調用:

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

DEMO

要將marginwidth添加到混合中,您不再可以使用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);
  }
})​;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM