Javascript没有从数组中选择背景颜色
Javascript not selecting background color from array
我正在尝试制作一个有几种不同颜色的子标题,就像Ask different页面上的那个。唯一的区别是,我试图让它从Javascript数组中随机选择一种颜色,而不是使用特定的颜色。
我已经定义了我想要使用的十六进制颜色,我面临的问题是它没有在HTML页面中正确显示(根本没有)。有人能教我如何解决这个问题吗?如果可以使用jQuery实现这一点,那么也可以。
以下是我目前所拥有的:
Javascript:
var colors = ['#3399FF', '#44A1FF', '#55AAFF', '#65B2FF', '#76BBFF', '#87C3FF', '#98CCFF', '#A9D4FF', '#BADDFF', '#CAE5FF', '#DBEEFF', '#ECF6FF'];
onload = changeColor();
function changeColor() {
subheader.style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
}
HTML:
<div class="header"></div>
<div class="subheader" id="sub1"></div>
<div class="subheader" id="sub2"></div>
<div class="subheader" id="sub3"></div>
<!-- Repeats till id="sub20" -->
CSS:
.header {
width:100%;
height:10%;
position:absolute;
background-color:#3399FF;
left:0;
top:0;
}
.subheader {
height:2%;
width:5%;
top:10%;
position:absolute;
}
#sub1 {left:0;}
#sub2 {left:5%;}
#sub3 {left:10%;}
/* Repeats till #sub20 */
FIDDLE
此外,如果有一种方法可以缩短我相当广泛的HTML和CSS,也许可以使用:nth-child()
之类的东西,如果你知道怎么做的话,请在你的答案中包括它。谢谢你,任何帮助都将不胜感激。
var colors = ['#3399FF', '#44A1FF', '#55AAFF', '#65B2FF', '#76BBFF', '#87C3FF', '#98CCFF', '#A9D4FF', '#BADDFF', '#CAE5FF', '#DBEEFF', '#ECF6FF'];
onload = changeColor();
function changeColor() {
subheader=document.getElementsByClassName('sub-header');
for(i=0;i<subheader.length;i++){
subheader[i].style.backgroundColor = colors[Math.floor(Math.random() * colors.length)];
}
}
演示:https://jsfiddle.net/2asvho0c/4/
JavaScript 有一个小问题
JavaScript
var colors = ['#3399FF', '#44A1FF', '#55AAFF', '#65B2FF', '#76BBFF', '#87C3FF', '#98CCFF', '#A9D4FF', '#BADDFF', '#CAE5FF', '#DBEEFF', '#ECF6FF'],
elems = document.getElementsByClassName('sub-header'),
i;
for (i = 0; i < elems.length; i += 1) {
var color = color = colors[Math.floor(Math.random() * colors.length)];
elems[i].style.backgroundColor = color;
}
Fiddle
解释
代码中的错误是您有类型sub-header.style
——编译器假设sub-header
是一个变量,但它没有定义。我们所做的是添加变量(elems
),循环通过它,并应用颜色。另一个问题是变量名不支持-
。我希望这对有帮助
相关文章:
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- 修复选择菜单时的背景图像
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript没有从数组中选择背景颜色
- jQuery位置选择器输入样式背景和焦点
- 如何使用颜色选择器来更改背景中的文本
- JavaScript:为什么不't将背景变化发送给用户's选择(简单)
- 选择文档背景颜色的选择列表选项时,如何更改该颜色
- 背景图像切换和隐藏选择复选框
- 如何根据从选择菜单中提供给用户的选项更改网页的背景颜色
- 进行测验,需要根据Javascript中的正确选择更改背景颜色
- JavaScript可以“检测”浏览器打印设置(特别是如果选择了打印背景颜色)
- 如果背景中有图像,则无法在IE中选择元素
- JavaScript:取消选择时设置单选按钮的背景(单选按钮组)
- 选择“更改”时,“背景图像”会更改
- 使用复选框更改背景颜色,可选择有限数量的复选框
- 解析 CSS 背景图像和选择器
- 当用户选择带有图像并在悬停时更改背景颜色时,JQuery 突出显示带有图像的菜单项
- 用户使用 HTML 颜色代码选择背景颜色
- 不要在前景上点击任何东西,点击选择背景