我试图让所有三张卡片在用鼠标指针悬停在它们上面时显示文本,但是它只显示左侧第一张卡片中的文本,而不显示其他两张卡片中的文本,即使我已经放了所有 3 个 div 中的 lorem ipsom 文本,用于它不会显示的卡片。
我已经在网上寻找解决方案,但找不到任何接近解决问题的方法。看来我可能必须添加一个 JavaScript 循环来遍历它,但我不知道如何做到这一点。
HTML
<div class="wrapper">
<div class="card" id='card'>
<div class="orangeCover">
<p id="hidden" class='easein'>Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Ipsa, eaque.
</p>
</div>
</div>
<div class="card" id='card'>
<div class="orangeCover">
<p id="hidden" class='easein'>Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Ipsa, eaque.
</p>
</div>
</div>
<div class="card" id='card'>
<div class="orangeCover">
<p id="hidden" class='easein'>Lorem ipsum dolor sit amet,
consectetur adipisicing elit. Ipsa, eaque.
</p>
</div>
</div>
</div>
CSS
html,
body {
margin: 0;
}
.wrapper {
width: 100vw;
height: 100vh;
overflow: hidden;
display: grid;
grid-column-gap: 20px;
grid-row-gap: 20px;
grid-template-columns: auto auto auto auto;
}
.orangeCover {
width: 250px;
height: 250px;
position: absolute;
}
.orangeCover:hover {
background-color: orangered;
transition: ease-in 0.5s;
}
.card {
border: 2px orangered solid;
width: 250px;
height: 250px;
margin-left: 100px;
margin-top: 100px;
background-image: url("http://source.unsplash.com/random/250x250");
}
#hidden {
visibility: hidden;
}
.reveal {
margin-left: 20px;
color: white;
font-size: 1.5rem;
}
Javascript
let text = document.querySelector("#hidden"), i;
let overlay = document.querySelector(".card");
let hiddenOverlay = document.querySelector(".card");
overlay.addEventListener("mouseover", newOverlay);
hiddenOverlay.addEventListener("mouseleave", hidden);
function newOverlay() {
text.style.visibility = "visible";
text.className = "reveal";
}
function hidden() {
text.style.visibility = "hidden";
}
最佳答案
我删除了 ID
即 hidden
并将它们添加为下面的 classes
JSFIDDLE片段。
关于javascript - 使用指针悬停时如何让文本显示在所有卡片中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52046582/