3 回答

TA貢獻2019條經驗 獲得超9個贊
idCSS 可以通過在屬性中使用偽元素加載來為您處理這個問題(并且可以opacity更改:hover- 如果您愿意,您也可以更改display):
let button = document.createElement("button")
let text = document.createTextNode("Add Squares")
let num = 1;
let displayText = document.createTextNode("num");
button.appendChild(text);
window.addEventListener("DOMContentLoaded", function () {
document.body.appendChild(button);
});
button.addEventListener("click", function () {
let test = document.createElement("div")
// Styles moved to CSS
test.className = "squares";
test.id = num;
console.log(num)
num++;
document.body.appendChild(test);
});
.squares {
background-color: black;
width: 77px;
height: 77px;
display: inline-block;
position: relative;
}
.squares::after {
content: attr(id);
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
color: white;
opacity: 0;
}
.squares:hover::after {
opacity: 1;
}

TA貢獻1829條經驗 獲得超7個贊
你可以:
創建黑色 div 的子 div
將 id 添加到子 div
使子 div 顯示:無
使用 CSS 規則在 :hover 上顯示子 div
例子:
body {
background-color: #aaa;
padding: 1rem;
}
/* the black squares */
.squares {
background-color: black;
width: 77px;
height: 77px;
display: inline-block;
}
/* transparent overlay with ID */
.overlay {
background: transparent;
width: 77px;
height: 77px;
color: white;
justify-content: center;
align-items: center;
display: none;
}
/* show overlay on hover */
.squares:hover .overlay {
display: flex;
}
<body>
<div id="10" class="squares">
<div class="overlay"><p>10</p></div>
</div>
</body>

TA貢獻1890條經驗 獲得超9個贊
最好的方法是使用 CSS。它可以通過 CSS 輕松完成。但是對于某些特定情況,您可能需要它。這是您應該用來實現目標的代碼。
let button = document.createElement("button");
let text = document.createTextNode("Add Squares");
let num = 1;
let displayText = document.createTextNode("num");
button.appendChild(text);
document.body.appendChild(button);
document.body.style.cssText = 'display:flex; align-items:flex-start;';
button.addEventListener("click", function () {
let styles = {
'width': '77px',
'height': '77px',
'background-color': 'black',
'color': 'white',
'display': 'flex',
'align-items': 'center',
'justify-content': 'center',
}
let div = document.createElement("div")
div.id = num;
div.className = "squares";
for (let style in styles) {
div.style[style] = styles[style];
}
div.onmouseover = function() {
document.getElementById('text'+this.id).style.display = 'block';
}
div.onmouseout = function() {
document.getElementById('text'+this.id).style.display = 'none';
}
let text = document.createElement('span');
text.id = 'text'+num;
text.style.display = 'none';
text.appendChild(document.createTextNode(num));
div.appendChild(text);
document.body.appendChild(div);
num++;
});
添加回答
舉報