用于更改表单边框颜色的Javascript不起作用?
正在尝试设置窗体边框颜色的动画,但似乎没有运行。我希望在页面加载后,边框颜色在没有任何用户交互的情况下自动更改用于更改表单边框颜色的Javascript不起作用?,javascript,html,css,Javascript,Html,Css,正在尝试设置窗体边框颜色的动画,但似乎没有运行。我希望在页面加载后,边框颜色在没有任何用户交互的情况下自动更改 window.onload(function colormagic() { //alert("OK1") var blueborder = document.getElementById("form1") var colorarray = new array() colorarray[0] = "blue" colorarray[1] = "green" co
window.onload(function colormagic() {
//alert("OK1")
var blueborder = document.getElementById("form1")
var colorarray = new array()
colorarray[0] = "blue"
colorarray[1] = "green"
colorarray[2] = "yellow"
colorarray[3] = "blue"
colorarray[4] = "green"
colorarray[5] = "yellow"
//alert("OK2")
for (i = 0; i < elements.length; i++) {
blueborder.style.borderColor=colorarray[i];
//alert("OK3")
}
})
window.onload(函数colormagic(){
//警报(“OK1”)
var blueorder=document.getElementById(“form1”)
var colorarray=新数组()
colorarray[0]=“蓝色”
colorarray[1]=“绿色”
colorarray[2]=“黄色”
colorarray[3]=“蓝色”
colorarray[4]=“绿色”
colorarray[5]=“黄色”
//警报(“OK2”)
对于(i=0;i
所以我尝试添加警报来调试它。我只收到了第一条警报声明。像这样试试,效果很好 演示
window.onload = function colormagic() {
var blueborder = document.getElementById("form1");
var colorarray = new Array();
colorarray[0] = "blue"
colorarray[1] = "green"
colorarray[2] = "yellow"
colorarray[3] = "blue"
colorarray[4] = "green"
colorarray[5] = "yellow"
for (i = 0; i < colorarray.length; i++) {
blueborder.style.borderColor = colorarray[i];
}
}
window.onload=函数colormagic(){
var blueorder=document.getElementById(“form1”);
var colorarray=新数组();
colorarray[0]=“蓝色”
colorarray[1]=“绿色”
colorarray[2]=“黄色”
colorarray[3]=“蓝色”
colorarray[4]=“绿色”
colorarray[5]=“黄色”
对于(i=0;i
不确定你想用它来完成什么,它看起来不太友好,但也许这已经接近你想要的了。当然,您可以根据自己的喜好设置超时间隔
var form = document.getElementById('form1');
function colormagic() {
var colorarray = ['blue', 'green', 'yellow'];
var len = colorarray.length;
var index = (Math.floor(Math.random() * len) + 1) - 1;
form.style.borderColor = colorarray[index];
setTimeout(colormagic, 100);
}
window.onload = colormagic;
一些改进:
- 没有必要在每次循环时查询DOM,因此第一行将从循环中删除
- style.borderColor不是一个函数
- 当您只需执行
var arr=[colors,go,in,like,this]操作时,您无需使用
创建数组并分配单个索引代码>new array()
setInterval
将继续以指定的间隔排队等待更多的函数调用,即使事情开始变慢,计时器变得更加“关闭”setTimeout
只会在第一个调用已经触发后,对其自身的下一个函数调用进行排队。因此,如果计时开始偏离您指定的超时,它最多只能有1个延迟函数调用排队,因为它等待调用本身。这个解释可能会让人困惑,所以这篇文章可能会帮助我做正确的事情。谢谢