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