Explanation
I have this pop-up showing when clicking one of the images, but for some reason, when displayed, part of pop-up looks like it’s behind some of the images, as you can see below. I thought it’s had something to do with z-index, but I’ve already changed to 2147483647 (which looks like to be the maximum value for it) and the issue persists. It’ll only stop when there’s no animation.
Code
You can also see it in JSFiddle (full screen).
var custom = function() {
var handlePopup = function() {
var overlay = $('.popup-overlay'),
close = $('.popup-close'),
trigger = $('.popup-trigger');
trigger.on('click', function() {
$(this).find('.popup-overlay').removeClass('popup-overlay-show');
$(this).find('.popup-overlay').addClass('popup-overlay-show');
});
close.on('click', function(e) {
e.stopPropagation();
overlay.removeClass('popup-overlay-show');
});
}
return {
init: function() {
handlePopup();
},
};
}();
$(document).ready(function() {
custom.init();
});
.overlay {
cursor: pointer;
}
.popup-overlay {
position: fixed;
top: 0;
left: 0;
right: 0;
width: 100%;
height: 100%;
z-index: 2147483647;
opacity: 0;
visibility: hidden;
background: rgba(0, 0, 0, 0.55);
}
.popup-overlay-show {
opacity: 1;
visibility: visible;
}
.popup-content {
position: absolute;
top: 50%;
left: 0;
right: 0;
width: 600px;
height: auto;
background: #fff;
padding: 35px;
margin: 0 auto;
transform: translate3d(0, -50%, 0);
}
<!DOCTYPE html>
<html>
<head>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="grid">
<div class="col-md-4">
<div class="popup-trigger animated fadeInUp">
<div class="overlay">
<img class="img-responsive" src="http://i.imgur.com/juvM8NA.png" alt="">
</div>
<div class="popup-overlay">
<div class="popup-content">
<a href="javascript:void(0);" class="popup-close">Close</a>
<div class="row">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="popup-trigger animated fadeInUp">
<div class="overlay">
<img class="img-responsive" src="http://i.imgur.com/juvM8NA.png" alt="">
</div>
<div class="popup-overlay">
<div class="popup-content">
<a href="javascript:void(0);" class="popup-close">Close</a>
<div class="row">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="popup-trigger animated fadeInUp">
<div class="overlay">
<img class="img-responsive" src="http://i.imgur.com/juvM8NA.png" alt="">
</div>
<div class="popup-overlay">
<div class="popup-content">
<a href="javascript:void(0);" class="popup-close">Close</a>
<div class="row">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="popup-trigger animated fadeInUp">
<div class="overlay">
<img class="img-responsive" src="http://i.imgur.com/juvM8NA.png" alt="">
</div>
<div class="popup-overlay">
<div class="popup-content">
<a href="javascript:void(0);" class="popup-close">Close</a>
<div class="row">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="popup-trigger animated fadeInUp">
<div class="overlay">
<img class="img-responsive" src="http://i.imgur.com/juvM8NA.png" alt="">
</div>
<div class="popup-overlay">
<div class="popup-content">
<a href="javascript:void(0);" class="popup-close">Close</a>
<div class="row">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
</div>
</div>
</div>
</div>
<div class="col-md-4">
<div class="popup-trigger animated fadeInUp">
<div class="overlay">
<img class="img-responsive" src="http://i.imgur.com/juvM8NA.png" alt="">
</div>
<div class="popup-overlay">
<div class="popup-content">
<a href="javascript:void(0);" class="popup-close">Close</a>
<div class="row">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js" type="text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js" type="text/javascript"></script>
<script src="js/custom.js" type="text/javascript"></script>
</body>
</html>
Thanks in advance,
Luiz.
2
Answers
One way around it would be to use the
.col-md-4
of the clicked element to control the state, and add az-index
to it so it will appear on top of all of it’s siblings.I would recommend moving your
.popup-overlay
element outside the triggering.col-md-4
element. And then wrapping each group in adiv
:Then update your jQuery to look for the
.closest()
parent element of.section
:Demo: JSFiddle