1

我正在为 tumblr 网站设置主题,发布的每张图片都包含在“.photobox”类中。是否有一段 javascript 或 jQuery 可以用来将 CSS 中“.photobox”的“border-color”属性更改为随机颜色 - 最好从预定义颜色列表中选择?我在这里找到了一两个脚本,但它们似乎不起作用。

4

5 回答 5

5

自动更改间隔

setInterval(function(){

  // define our colors
  var colors = ["#CCCCCC","#333333","#990099"];
  // get a reference to <div id="mybox"></div>
  var myBox  = document.getElementById("mybox");
  // get a random color from list
  var rand   = Math.floor(Math.random()*colors.length);
  // set random color as borderColor
  myBox.style.borderColor = colors[rand];

}, 500); // run twice a second

一次性随机颜色

  // define our colors
  var colors = ["#CCCCCC","#333333","#990099"];
  // get a reference to <div id="mybox"></div>
  var myBox  = document.getElementById("mybox");
  // get a random color from list
  var rand   = Math.floor(Math.random()*colors.length);
  // set random color as borderColor
  myBox.style.borderColor = colors[rand];

单个容器中的许多图像

  // define our colors
  var colors = ["#CCCCCC","#333333","#990099"];
  // get all of our images within a specified container element
  var images = document.getElementById("container").getElementsByTagName("img");
  // loop through each
  for (var i = 0; i < images.length; i++) {
    // get a random color from list
    var rand   = Math.floor(Math.random()*colors.length);
    // apply random color to current image
    images[i].style.borderColor = colors[rand];
  }

jQuery 解决方案

$(".photobox").each(function(){
  var colors = ["#CCCCCC","#333333","#990099"];
  var rand = Math.floor(Math.random()*colors.length);
  $(this).css("borderColor", colors[rand]);
});
于 2010-01-03T17:39:03.763 回答
0

我不确定,这个http://plugins.jquery.com/node/11985下载 zip 并查看文件的源代码可能是可能的。它用于表格,颜色是随机的,但我认为我们可以提供固定的颜色代码

于 2010-01-03T17:34:58.000 回答
0

Javascript 不能更改 CSS 规则集。您必须声明一个新的 CSS 规则集并将其分配给 DIV 或每个图像。喜欢

<script type="text/javascript">
    函数更改类()
    {
        document.getElementById("MyElement").className += "MyClass";
    }
</脚本>
...
<button onclick="changeClass()">我的按钮</button>
于 2010-01-03T17:36:23.113 回答
0

你去:http: //jsbin.com/afadu

$(function(){ 
  var colors = ['#ff6','#6ff','#f6f','#f66','#66f','#6f6']; 
  $('input').click(function(){ 
      var randomcolor=Math.floor(Math.random()*colors.length); 
      //alert(randomcolor); 
      $('body').css('color',colors[randomcolor]); 
  }); 
});
于 2010-01-03T17:39:52.633 回答
0

根据您的评论,您想要这样的东西:

function getElementsByClassName ( classname, node ) {
    if ( !node ) {
        node = document.getElementsByTagName ( "body" )[0];
    }

    var a = [];
    var re = new RegExp ( '\\b' + classname + '\\b' );
    var els = node.getElementsByTagName ( "*" );
    for ( var i = 0, j = els.length; i < j; i++ ) {
        if ( re.test ( els[i].className ) ) {
            a.push ( els[i] );
        }
    }

    return a;
}

var photoboxes = getElementsByClassName ( 'photobox' );
var colors = Array ( 'red', 'blue', 'green', 'pink' );
for ( var i = 0; i < photoboxes.length; i++ ) {
    var images = photoboxes[i].getElementsByTagName ( 'img' );

    for ( var j = 0; j < images.length; j++ ) {
        images[j].style.borderColor = colors[Math.floor ( Math.random () * colors.length )];
    }
}

是从这里getElementByClassName复制

于 2010-01-03T17:50:23.267 回答