[英]JavaScript and CSS hover issue
更改段落元素的顏色時,CSS懸停將停止工作。
我做了一個演示來解釋: https : //jsfiddle.net/woan6b64/
更改<p>'s
顏色后,懸停選擇器停止工作。
我的問題是:
JSFiddle代碼:
var shift = 0; function change() { if (shift === 0) { document.getElementById("box").style.backgroundColor = "black"; document.getElementById("text").style.color = "white"; document.getElementById("text").innerHTML = 'Good! Now click the box again.'; shift = 1; } else { document.getElementById("box").style.backgroundColor = "white"; document.getElementById("text").style.color = "black"; document.getElementById("text").innerHTML = 'Hover effect is now broken :('; } }
#box { height: 100px; width: 200px; background-color: white; } p:hover { color: green; }
<div id='box' onclick='change()'> <p id='text'> Click me for this box to change color. (Notice how I turn green when hovered) </p> </div>
停下來! 如果沒有必要,請不要使用!important
。問題是您將顏色設置為黑色。
document.getElementById("text").style.color = "";
這將使顏色繼承正確的樣式。
但是,這也不是正確的解決方案。 您應該將類添加到框中,然后執行以下操作:
#box { height: 100px; width: 200px; background-color: white; } p:hover { color: green; } #box.altered { color: white; background-color: black; } .altered p:hover { color: red; }
<div id="box" onclick="this.classList.toggle('altered')"> <p id='text'> Click me for this box to change color. (Notice how I turn green when hovered) </p> </div>
新增班級
// document.getElementById("box").style.backgroundColor = "black";
// document.getElementById("text").style.color = "white";
document.getElementById("text").classList.add("purple");
.purple {
color: purple;
}
如果要使用純JS完成此操作,則需要監聽onmouseover
事件和onmouseout
事件,請檢查我編寫的代碼
var textElement = document.getElementById("text"); var defaultColor = textElement.style.color; textElement.onmouseover = function(event) { var currentElement = event.target; currentElement.style.color = "red"; } textElement.onmouseout = function(event) { var currentElement = event.target; currentElement.style.color = defaultColor; }
<div id="parent"> <p id="text"> I am a text that change its text color :D </p> </div>
設置顏色后,懸停將被覆蓋。 使用!important強制它:
p:hover{
color: green !important;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.