Reputation: 2948
Could you please take a look at my code:
$(".button").click(function () {
$("#overlay").css("display", "block");
$('body').css('overflow', 'hidden');
});
I need to toggle this style when we clicked again on .button
. That should be look like:
$(".button").click(function () {
$("#overlay").css("display", "none");
$('body').css('overflow', 'auto');
});
Upvotes: 2
Views: 168
Reputation: 2948
I have using this now:
$('.button').on('click', function (e) {
$('#overlay').toggle();
if ($("#overlay").is(':visible')) {
$("#overlay").css("display", "block");
$('body').css('overflow-y', 'hidden');
}
else {
$("#overlay").css("display", "none");
$('body').css('overflow-y', 'auto');
}
});
Upvotes: 0
Reputation: 2003
Yes, use JQuery's toggleClass.
Create those 2 classes which I did in my example as .display-show
& .body-show
Try this:
$(".button").click(function() {
$("#overlay").toggleClass('display-show');
$('body').toggleClass('body-show');
});
body {
overflow: hidden;
}
#overlay {
background-color: red;
opacity: 0.1;
width: 100px;
height: 100px;
}
.display-show {
display: none;
}
.body-show {
overflow: auto;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" class="button">Button</a>
<div id="overlay"></div>
Update 1: (according to your jsfiddle)
$(".button").click(function() {
$("#overlay").toggleClass('display-show');
$('body').toggleClass('body-show');
});
body {
font-family: sans-serif;
height: 1500px;
padding: 20px;
overflow: hidden;
}
.button {
border: 0;
background: red;
color: #fff;
padding: 10px 30px;
text-decoration: none;
}
#overlay {
top: 100px;
right: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0,0,0,0.5);
display: none;
}
.display-show {
display: block !important;
}
.body-show {
overflow: auto !important;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" class="button">Button</a>
<div id="overlay"></div>
Upvotes: 2
Reputation: 836
How about this code? (Runnable example : https://codepen.io/hoge1e3/pen/mddbJPV)
var overlayVisible=false;
$(".button").click(function () {
if (!overlayVisible) {
$("#overlay").css("display", "block");
$('body').css('overflow', 'hidden');
overlayVisible=true;
} else {
$("#overlay").css("display", "none");
$('body').css('overflow', 'auto');
overlayVisible=false;
}
});
Upvotes: 1