我试图在用户按下按钮表单提交时实现这一点,然后当页面重新加载时,用户需要停留在那个页面上。
我有工人/买家表单,所以当用户是一个买家,并填写字段和提交表单,它需要停留在该表单时,页面重新加载。
这是一个代码:
null
const switchers = [...document.querySelectorAll('.switcher')]
switchers.forEach(item => {
item.addEventListener('click', function() {
switchers.forEach(item => item.parentElement.classList.remove('is-active'))
this.parentElement.classList.add('is-active')
})
})
*,
*::before,
*::after {
box-sizing: border-box;
}
body {
margin: 0;
font-family: Roboto, -apple-system, 'Helvetica Neue', 'Segoe UI', Arial, sans-serif;
background: #3b4465;
}
.forms-section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.section-title {
font-size: 32px;
letter-spacing: 1px;
color: #fff;
}
.forms {
display: flex;
align-items: flex-start;
margin-top: 30px;
}
.form-wrapper {
animation: hideLayer .3s ease-out forwards;
}
.form-wrapper.is-active {
animation: showLayer .3s ease-in forwards;
}
@keyframes showLayer {
50% {
z-index: 1;
}
100% {
z-index: 1;
}
}
@keyframes hideLayer {
0% {
z-index: 1;
}
49.999% {
z-index: 1;
}
}
.switcher {
position: relative;
cursor: pointer;
display: block;
margin-right: auto;
margin-left: auto;
padding: 0;
text-transform: uppercase;
font-family: inherit;
font-size: 16px;
letter-spacing: .5px;
color: #999;
background-color: transparent;
border: none;
outline: none;
transform: translateX(0);
transition: all .3s ease-out;
}
.form-wrapper.is-active .switcher-login {
color: #fff;
transform: translateX(90px);
}
.form-wrapper.is-active .switcher-signup {
color: #fff;
transform: translateX(-90px);
}
.underline {
position: absolute;
bottom: -5px;
left: 0;
overflow: hidden;
pointer-events: none;
width: 100%;
height: 2px;
}
.underline::before {
content: '';
position: absolute;
top: 0;
left: inherit;
display: block;
width: inherit;
height: inherit;
background-color: currentColor;
transition: transform .2s ease-out;
}
.switcher-login .underline::before {
transform: translateX(101%);
}
.switcher-signup .underline::before {
transform: translateX(-101%);
}
.form-wrapper.is-active .underline::before {
transform: translateX(0);
}
.form {
overflow: hidden;
min-width: 260px;
margin-top: 50px;
padding: 30px 25px;
border-radius: 5px;
transform-origin: top;
}
.form-login {
animation: hideLogin .3s ease-out forwards;
}
.form-wrapper.is-active .form-login {
animation: showLogin .3s ease-in forwards;
}
@keyframes showLogin {
0% {
background: #d7e7f1;
transform: translate(40%, 10px);
}
50% {
transform: translate(0, 0);
}
100% {
background-color: #fff;
transform: translate(35%, -20px);
}
}
@keyframes hideLogin {
0% {
background-color: #fff;
transform: translate(35%, -20px);
}
50% {
transform: translate(0, 0);
}
100% {
background: #d7e7f1;
transform: translate(40%, 10px);
}
}
.form-signup {
animation: hideSignup .3s ease-out forwards;
}
.form-wrapper.is-active .form-signup {
animation: showSignup .3s ease-in forwards;
}
@keyframes showSignup {
0% {
background: #d7e7f1;
transform: translate(-40%, 10px) scaleY(.8);
}
50% {
transform: translate(0, 0) scaleY(.8);
}
100% {
background-color: #fff;
transform: translate(-35%, -20px) scaleY(1);
}
}
@keyframes hideSignup {
0% {
background-color: #fff;
transform: translate(-35%, -20px) scaleY(1);
}
50% {
transform: translate(0, 0) scaleY(.8);
}
100% {
background: #d7e7f1;
transform: translate(-40%, 10px) scaleY(.8);
}
}
.form fieldset {
position: relative;
opacity: 0;
margin: 0;
padding: 0;
border: 0;
transition: all .3s ease-out;
}
.form-login fieldset {
transform: translateX(-50%);
}
.form-signup fieldset {
transform: translateX(50%);
}
.form-wrapper.is-active fieldset {
opacity: 1;
transform: translateX(0);
transition: opacity .4s ease-in, transform .35s ease-in;
}
.form legend {
position: absolute;
overflow: hidden;
width: 1px;
height: 1px;
clip: rect(0 0 0 0);
}
.input-block {
margin-bottom: 20px;
}
.input-block label {
font-size: 14px;
color: #a1b4b4;
}
.input-block input {
display: block;
width: 100%;
margin-top: 8px;
padding-right: 15px;
padding-left: 15px;
font-size: 16px;
line-height: 40px;
color: #3b4465;
background: #eef9fe;
border: 1px solid #cddbef;
border-radius: 2px;
}
.form [type='submit'] {
opacity: 0;
display: block;
min-width: 120px;
margin: 30px auto 10px;
font-size: 18px;
line-height: 40px;
border-radius: 25px;
border: none;
transition: all .3s ease-out;
}
.form-wrapper.is-active .form [type='submit'] {
opacity: 1;
transform: translateX(0);
transition: all .4s ease-in;
}
.btn-login {
color: #fbfdff;
background: #a7e245;
transform: translateX(-30%);
}
.btn-signup {
color: #a7e245;
background: #fbfdff;
box-shadow: inset 0 0 0 2px #a7e245;
transform: translateX(30%);
}
<section class="forms-section">
<div class="forms">
<div class="form-wrapper is-active">
<button type="button" class="switcher switcher-login">
Worker
<span class="underline"></span>
</button>
<form class="form form-login">
<fieldset>
<legend>Please, enter your email and password for login.</legend>
<div class="input-block">
<label for="login-email">E-mail</label>
<input id="login-email" type="email" required>
</div>
<div class="input-block">
<label for="login-password">Password</label>
<input id="login-password" type="password" required>
</div>
</fieldset>
<button type="submit" class="btn-login">Login</button>
</form>
</div>
<div class="form-wrapper">
<button type="button" class="switcher switcher-signup">
Buyer
<span class="underline"></span>
</button>
<form class="form form-signup">
<fieldset>
<legend>Please, enter your email, password and password confirmation for sign up.</legend>
<div class="input-block">
<label for="signup-email">E-mail</label>
<input id="signup-email" type="email" required>
</div>
<div class="input-block">
<label for="signup-password">Password</label>
<input id="signup-password" type="password" required>
</div>
<div class="input-block">
<label for="signup-password-confirm">Confirm password</label>
<input id="signup-password-confirm" type="password" required>
</div>
</fieldset>
<button type="submit" class="btn-signup">Continue</button>
</form>
</div>
</div>
</section>
null
有人能帮我一下吗?
试试这个。 添加了div上的ID和提交按钮上的值。
<?php
if (isset($_POST['form1'])) {
echo '<script type="text/javascript">
var element = document.getElementById("form1");
element.classList.add("is-active");
</script>';
} ?>
<?php
if (isset($_POST['form2'])) {
echo '<script type="text/javascript">
var element = document.getElementById("form2");
element.classList.add("is-active");
</script>';
} ?>
null
const switchers = [...document.querySelectorAll('.switcher')]
switchers.forEach(item => {
item.addEventListener('click', function() {
switchers.forEach(item => item.parentElement.classList.remove('is-active'))
this.parentElement.classList.add('is-active')
})
})
*,
*::before,
*::after {
box-sizing: border-box;
}
body {
margin: 0;
font-family: Roboto, -apple-system, 'Helvetica Neue', 'Segoe UI', Arial, sans-serif;
background: #3b4465;
}
.forms-section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.section-title {
font-size: 32px;
letter-spacing: 1px;
color: #fff;
}
.forms {
display: flex;
align-items: flex-start;
margin-top: 30px;
}
.form-wrapper {
animation: hideLayer .3s ease-out forwards;
}
.form-wrapper.is-active {
animation: showLayer .3s ease-in forwards;
}
@keyframes showLayer {
50% {
z-index: 1;
}
100% {
z-index: 1;
}
}
@keyframes hideLayer {
0% {
z-index: 1;
}
49.999% {
z-index: 1;
}
}
.switcher {
position: relative;
cursor: pointer;
display: block;
margin-right: auto;
margin-left: auto;
padding: 0;
text-transform: uppercase;
font-family: inherit;
font-size: 16px;
letter-spacing: .5px;
color: #999;
background-color: transparent;
border: none;
outline: none;
transform: translateX(0);
transition: all .3s ease-out;
}
.form-wrapper.is-active .switcher-login {
color: #fff;
transform: translateX(90px);
}
.form-wrapper.is-active .switcher-signup {
color: #fff;
transform: translateX(-90px);
}
.underline {
position: absolute;
bottom: -5px;
left: 0;
overflow: hidden;
pointer-events: none;
width: 100%;
height: 2px;
}
.underline::before {
content: '';
position: absolute;
top: 0;
left: inherit;
display: block;
width: inherit;
height: inherit;
background-color: currentColor;
transition: transform .2s ease-out;
}
.switcher-login .underline::before {
transform: translateX(101%);
}
.switcher-signup .underline::before {
transform: translateX(-101%);
}
.form-wrapper.is-active .underline::before {
transform: translateX(0);
}
.form {
overflow: hidden;
min-width: 260px;
margin-top: 50px;
padding: 30px 25px;
border-radius: 5px;
transform-origin: top;
}
.form-login {
animation: hideLogin .3s ease-out forwards;
}
.form-wrapper.is-active .form-login {
animation: showLogin .3s ease-in forwards;
}
@keyframes showLogin {
0% {
background: #d7e7f1;
transform: translate(40%, 10px);
}
50% {
transform: translate(0, 0);
}
100% {
background-color: #fff;
transform: translate(35%, -20px);
}
}
@keyframes hideLogin {
0% {
background-color: #fff;
transform: translate(35%, -20px);
}
50% {
transform: translate(0, 0);
}
100% {
background: #d7e7f1;
transform: translate(40%, 10px);
}
}
.form-signup {
animation: hideSignup .3s ease-out forwards;
}
.form-wrapper.is-active .form-signup {
animation: showSignup .3s ease-in forwards;
}
@keyframes showSignup {
0% {
background: #d7e7f1;
transform: translate(-40%, 10px) scaleY(.8);
}
50% {
transform: translate(0, 0) scaleY(.8);
}
100% {
background-color: #fff;
transform: translate(-35%, -20px) scaleY(1);
}
}
@keyframes hideSignup {
0% {
background-color: #fff;
transform: translate(-35%, -20px) scaleY(1);
}
50% {
transform: translate(0, 0) scaleY(.8);
}
100% {
background: #d7e7f1;
transform: translate(-40%, 10px) scaleY(.8);
}
}
.form fieldset {
position: relative;
opacity: 0;
margin: 0;
padding: 0;
border: 0;
transition: all .3s ease-out;
}
.form-login fieldset {
transform: translateX(-50%);
}
.form-signup fieldset {
transform: translateX(50%);
}
.form-wrapper.is-active fieldset {
opacity: 1;
transform: translateX(0);
transition: opacity .4s ease-in, transform .35s ease-in;
}
.form legend {
position: absolute;
overflow: hidden;
width: 1px;
height: 1px;
clip: rect(0 0 0 0);
}
.input-block {
margin-bottom: 20px;
}
.input-block label {
font-size: 14px;
color: #a1b4b4;
}
.input-block input {
display: block;
width: 100%;
margin-top: 8px;
padding-right: 15px;
padding-left: 15px;
font-size: 16px;
line-height: 40px;
color: #3b4465;
background: #eef9fe;
border: 1px solid #cddbef;
border-radius: 2px;
}
.form [type='submit'] {
opacity: 0;
display: block;
min-width: 120px;
margin: 30px auto 10px;
font-size: 18px;
line-height: 40px;
border-radius: 25px;
border: none;
transition: all .3s ease-out;
}
.form-wrapper.is-active .form [type='submit'] {
opacity: 1;
transform: translateX(0);
transition: all .4s ease-in;
}
.btn-login {
color: #fbfdff;
background: #a7e245;
transform: translateX(-30%);
}
.btn-signup {
color: #a7e245;
background: #fbfdff;
box-shadow: inset 0 0 0 2px #a7e245;
transform: translateX(30%);
}
<section class="forms-section">
<div class="forms">
<div class="form-wrapper is-active" id="form1">
<button type="button" class="switcher switcher-login">
Worker
<span class="underline"></span>
</button>
<form class="form form-login">
<fieldset>
<legend>Please, enter your email and password for login.</legend>
<div class="input-block">
<label for="login-email">E-mail</label>
<input id="login-email" type="email" required>
</div>
<div class="input-block">
<label for="login-password">Password</label>
<input id="login-password" type="password" required>
</div>
</fieldset>
<button type="submit" class="btn-login" value="form1">Login</button>
</form>
</div>
<div class="form-wrapper" id="form2">
<button type="button" class="switcher switcher-signup">
Buyer
<span class="underline"></span>
</button>
<form class="form form-signup">
<fieldset>
<legend>Please, enter your email, password and password confirmation for sign up.</legend>
<div class="input-block">
<label for="signup-email">E-mail</label>
<input id="signup-email" type="email" required>
</div>
<div class="input-block">
<label for="signup-password">Password</label>
<input id="signup-password" type="password" required>
</div>
<div class="input-block">
<label for="signup-password-confirm">Confirm password</label>
<input id="signup-password-confirm" type="password" required>
</div>
</fieldset>
<button type="submit" class="btn-signup" value="form2">Continue</button>
</form>
</div>
</div>
<?php
if (isset($_POST['form1'])) {
echo '<script type="text/javascript">
var element = document.getElementById("form1");
element.classList.add("is-active");
</script>';
} ?>
<?php
if (isset($_POST['form2'])) {
echo '<script type="text/javascript">
var element = document.getElementById("form2");
element.classList.add("is-active");
</script>';
} ?>
</section>