[英]How to change color of font-awesome icon by clicking the icon
var garbage = document.getElementById("garbage"); garbage.addEventListener("click",function(){ garbage.style.color = "#66c144"; }
<link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div id="garbage"> <i class="fas fa-trash"></i> </div>
Hi, I am trying to change the font color for font-awesome trash icon by clicking the icon. 嗨,我正在尝试通过单击图标来更改超棒垃圾桶图标的字体颜色。 However, it is not working.
但是,它不起作用。 I would appreciate any tips on how to get this work.
我将不胜感激有关如何进行这项工作的任何提示。
var trash = document.getElementById("trash"), glass = document.getElementById("glass"), organic = document.getElementById("organic"), plastic = document.getElementById("plastic"), paper = document.getElementById("paper"); trash.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; glass.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); glass.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); organic.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; glass.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); plastic.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; glass.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; paper.children[0].style.color = "#ffffff"; }); paper.addEventListener("click",function(){ this.children[0].style.color = "#66c144"; trash.children[0].style.color = "#ffffff"; glass.children[0].style.color = "#ffffff"; organic.children[0].style.color = "#ffffff"; plastic.children[0].style.color = "#ffffff"; });
<link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div class="icons flex"> <div id="trash"> <i class="fas fa-trash"></i> </div> <div id="glass"> <i class="fas fa-wine-glass"></i> </div> <div id="organic"> <i class="fab fa-envira"></i> </div> <div id="plastic"> <i class="far fa-hdd"></i> </div> <div id="paper"> <i class="far fa-newspaper"></i> </div> </div>
You are missing the );
您缺少
);
after the closing }
: 在结束之后
}
:
var garbage = document.getElementById("garbage"); garbage.addEventListener("click",function(){ garbage.style.color = "#66c144"; });
<link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div id="garbage"> <i class="fas fa-trash"></i> </div>
Note: You don't need to target the parent , you can just give the id
to the icon. 注意:您不需要定位 父 对象 ,只需将
id
赋予图标即可。
Here's some other options to change an FA icon. 这是更改FA图标的其他一些选项。 The keyword
this
represents garbage
. 关键字
this
表示garbage
。 The .property
or .method()/.function()
references the icon. .property
或.method()/.function()
引用图标。
.querySelector() .querySelector()
.getElementsByTagName() .getElementsByTagName()
.firstElementChild .firstElementChild
var garbage = document.getElementById("garbage"); garbage.addEventListener("click", function() { this.children[0].style.color = "#66c144"; this.querySelector('.fas').style.fontSize = '3rem'; this.getElementsByTagName('I')[0].classList.toggle('fa-spin'); this.firstElementChild.style.transition = 'color 1.5s ease 1.25s, font-size 0.75s ease-out'; }, false);
<link href="https://use.fontawesome.com/releases/v5.0.10/css/all.css" rel="stylesheet"> <div id="garbage"> <i class="fas fa-trash"></i> </div>
You are missing the closing parenthesis after your event listener: 在事件侦听器之后,您缺少右括号:
var garbage = document.getElementById("garbage");
garbage.addEventListener("click",function(){
garbage.style.color = "#66c144";
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.