首次更改颜色后,轮廓颜色闪烁的JavaScript设置间隔不起作用
我试图每2秒更改一个H1元素的轮廓颜色。所以我使用了这个JavaScript代码。。。但它只从黄色变为橙色一次,并且一直保持橙色。我能做些什么使它在两种颜色之间闪烁?请用JS术语回复,而不是JQuery库 这是我的JavaScript代码,我是JS新手:首次更改颜色后,轮廓颜色闪烁的JavaScript设置间隔不起作用,javascript,css,setinterval,getelementbyid,var,Javascript,Css,Setinterval,Getelementbyid,Var,我试图每2秒更改一个H1元素的轮廓颜色。所以我使用了这个JavaScript代码。。。但它只从黄色变为橙色一次,并且一直保持橙色。我能做些什么使它在两种颜色之间闪烁?请用JS术语回复,而不是JQuery库 这是我的JavaScript代码,我是JS新手: var myVar = setInterval(function(){ colorFlicker() }, 2000); function colorFlicker(){ var y = document.getElementById
var myVar = setInterval(function(){ colorFlicker() }, 2000);
function colorFlicker(){
var y = document.getElementById("mainH1");
y.style.outlineColor = y.style.outlineColor == "#ff944d" ? "#d9ff66": "#ff944d";
}
不要在javascript中检查颜色,返回的颜色取决于浏览器,通常采用
rgb(200,33,33)
或rgba(244,22244,1)
格式,甚至在旧浏览器中使用十六进制,请改用标志
var myVar=setInterval(彩色闪烁,500);
var标志=真;
函数colorFlacker(){
var y=document.getElementById(“mainH1”);
y、 style.outlineColor=flag?#d9ff66:“#ff944d”;
flag=!flag;
}
#mainH1{大纲:2px实心#ff944d;}
TEST
使用默认颜色的rgb()
,然后调整您的条件:
var myVar=setInterval(彩色闪烁,1000);
函数colorFlacker(){
var y=document.getElementById(“mainH1”);
y、 style.outlineColor=y.style.outlineColor==“rgb(255,148,77)”?“#d9ff66:“rgb(255,148,77)”;
}
h1{
轮廓样式:虚线;
轮廓颜色:rgb(255、148、77);
}
mainH1应使用CSS处理样式更改。然后,您可以使用JavaScript安全地切换将CSS样式附加到元素的类:
/* css */
#mainH1 { outline: /* some color */ }
#mainH1.alternateColor { outline: /* some other color */ }
// JS
var y = document.getElementById("mainH1");
function colorFlicker(){
y.classList.toggle('alternateColor');
}
在ColorFlacker()函数中创建变量“y”后,您能用文字解释一下该标志在做什么吗?有人能告诉我如何使用该标志对if,else语句执行adeneo的操作吗?这真的很有趣,但因为我是新来的,我对控制流有点迷茫。它和你的代码一样,标志开始是true
和doflag=!flag
将其反转,因此true
变为false
,下次false
变为true
等。