1
У меня есть сетка изображений. и когда вы нажимаете, надпись с уменьшенной непрозрачностью должна отображаться сверху, если другой щелкнут, тогда предыдущий должен вернуться к нормальному, а новый - оверлей. Я попытался кучу разных способов, и ничего работает:Сетка наложения изображений
<div class="grid-item">
<a href="overlayActiveOne()">
<img src="img/img.png" class="img-responsive">
</a>
<div id="overlay-one"></div>
</div>
<div class="grid-item">
<a href="overlayActiveTwo()">
<img src="img/img2.png" class="img-responsive">
</a>
<div id="overlay-two"></div>
</div>
<div class="grid-item">
<a href="overlayActiveThree()">
<img src="img/img3.png" class="img-responsive">
</a>
<div id="overlay-three"></div>
</div>
<div class="grid-item">
<a href="overlayActiveFour()">
<img src="img/img4.png" class="img-responsive">
</a>
<div id="overlay-four()"></div>
</div>
CSS:
#overlay-one #overlay-two #overlay-three #overlay-four {
background-color: black;
height: 100%;
width: 100%;
opacity: 0;
position: absolute;
top: 0;
left: 0;
}
JS:
function overlayActiveOne() {
var overlay = document.getElementById("overlay-one")
overlay.style.opacity = 0.7;
}
function overlayActiveTwo() {
var overlay = document.getElementById("overlay-two");
overlay.style.opacity = 0.7;
}
function overlayActiveThree() {
var overlay = document.getElementById("overlay-three");
overlay.style.opacity = 0.7;
}
function overlayActiveFour() {
var overlay = document.getElementById("overlay-four");
overlay.style.opacity = 0.7;
}
Почему бы просто не добавить/удалить класс 'active' в/из родителя ... тогда это просто CSS. Не нужно искать поиск вверх/вниз по DOM. –
Но непрозрачность меняется при наложении на родителя. –
Я имею в виду - http://codepen.io/Paulie-D/pen/rxyLwx. JQuery менее сложный и требует лишь небольшого изменения CSS. –