Reputation: 430
I want to create an intro before loading the page content with the code below.
However, every time I click the next and start buttons, the border shrinks down then goes back to normal. How can I get the border to not shrink?
$(document).ready(function() {
$('.btnNext').click(function(e) {
e.preventDefault();
$(this).closest('.wrap').fadeOut().next().fadeIn();
});
$('.start').click(function(e) {
e.preventDefault();
$('#container').hide();
$('#contents').fadeIn();
});
});
.hidden {
display: none;
}
#container {
border: solid 4px black;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
#contents {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<div class="wrap">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, quo.1</p>
<button class="btnNext">Next</button>
</div>
<div class="wrap hidden">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, quo.2</p>
<button class="btnNext">Next</button>
</div>
<div class="wrap hidden">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, quo.3</p>
<button class="start">start</button>
</div>
<p id="contents">asdasdsa Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis placeat asperiores veritatis excepturi sunt iste ipsum, aspernatur, nam facilis consectetur.</p>
</div>
Upvotes: 2
Views: 337
Reputation: 67505
That happen because the fadeIn()
will show the element before the end of the fadeOut()
duration.
To solve this issue you could use fadeOut()
callback to execute the fadeIn()
after the end of fadeOut()
duration, like :
$('.btnNext').click(function(e){
e.preventDefault();
$(this).closest('.wrap').fadeOut(200,function(){
$(this).next().fadeIn(201)
});
});
Hope this helps.
$(document).ready(function() {
$('.btnNext').click(function(e) {
e.preventDefault();
$(this).closest('.wrap').fadeOut(200, function() {
$(this).next().fadeIn(201)
});
});
$('.start').click(function(e) {
e.preventDefault();
$('#container').hide();
$('#contents').fadeIn();
});
});
.hidden {
display: none;
}
#container {
border: solid 4px black;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
#contents {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container">
<div class="wrap">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, quo.1</p>
<button class="btnNext">Next</button>
</div>
<div class="wrap hidden">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, quo.2</p>
<button class="btnNext">Next</button>
</div>
<div class="wrap hidden">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, quo.3</p>
<button class="start">start</button>
</div>
</div>
<p id="contents">asdasdsa Lorem ipsum dolor sit amet, consectetur adipisicing elit. Corporis placeat asperiores veritatis excepturi sunt iste ipsum, aspernatur, nam facilis consectetur.</p>
Upvotes: 2