$(".buttonNfield input[type='button']").click(function() {
var pseudoThis = $(this).closest('.buttonNfield').find("input[type='text']");
$(pseudoThis).show( 100, function() {
$(pseudoThis).css({
'display': 'flex',
'width': '70%',
'marginLeft': '10px',
'opacity': '1'
});
});
$(pseudoThis).focus();
})
var totalFields = 0;
var remainingFields;
$(function() {
$("input[type='text']").each(function() {
totalFields = totalFields + 1;
})
})
$("input[type='button']").on("click", function() {
// fly in total fields box
})
$("html").on("mouseover", function() {
remainingFields = totalFields;
$("input[type='text']").each(function() {
if ($(this).val() != '') {
remainingFields = remainingFields - 1;
}
})
if (remainingFields > 0) {
$('.remaining').html(remainingFields + ' ' + 'fields remaining');
} else {
$('.remaining').css('opacity', '0');
// fly in submit button
$("input[type='submit']").css({
'marginLeft': '0',
'marginRight': '0'
});
}
})
$("input[type='text']").on("focus", function() {
if (remainingFields < 2) {
$("input[type='submit']").css({
'marginLeft': '0',
'marginRight': '0'
});
}
})
body {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 100vw;
height: 100vh;
margin: 0;
padding: 20px;
overflow: hidden;
box-sizing: border-box;
}
form {
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
width: 100%;
padding-top: 50px;
}
.buttonNfield {
display: flex;
justify-content: center;
width: 100%;
margin: 15px 0;
}
.buttonNfield input[type="button"] {
width: 30%;
cursor: pointer;
}
.buttonNfield input[type="text"] {
display: none;
width: 0%;
overflow: hidden;
transition: width 0.5s ease;
opacity: 1;
box-sizing: border-box;
}
.submitNinfo {
display: flex;
justify-content: center;
width: 100%;
}
input[type="submit"] {
margin: 5px -100% 0px 100%;
padding: 10px;
font-size: 20px;
color: hsla(0, 0%, 70%, 1);
background-color: hsla(0, 0%, 20%, 1);
border-style: solid;
border-color: black;
border-width: 1px;
border-radius: 3px;
cursor: pointer;
transition: margin 0.6s, background 0.2s;
}
input[type="submit"]:hover {
background-color: hsla(0, 0%, 0%, 1);
}
.remaining {
position: fixed;
top: 10px;
left: 50%; transform: translateX(-50%);
display: flex;
justify-content: center;
width: 100%;
transition: opacity 1s;
font-size: 14px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
<div class="buttonNfield">
<input type="button" value="Enter First Name">
<input type="text" placeholder="type here">
</div>
<div class="buttonNfield">
<input type="button" value="Enter Last Name">
<input type="text" placeholder="type here">
</div>
<div class="submitNinfo">
<input type="submit" value="submit form">
</div>
<div class="remaining"></div>
</form>