乐于分享
好东西不私藏

注册卡片样式切换css3动画!!附源码!!

注册卡片样式切换css3动画!!附源码!!

  效果展示  

  完整源码  

HTML
<!DOCTYPE html><htmllang="en" ><head><metacharset="UTF-8"><title>登录注册卡片样式切换css3动画 </title><linkrel="stylesheet"href="css/style.css"rel="stylesheet" /></head><body><divclass="form-structor">	<divclass="signup">		<h2class="form-title"id="signup"><span></span>注册</h2>		<divclass="form-holder">			<inputtype="text"class="input"placeholder="用户名" />			<inputtype="email"class="input"placeholder="邮箱" />			<inputtype="password"class="input"placeholder="密码" />		</div>		<buttonclass="submit-btn">注册</button>	</div>	<divclass="login slide-up">		<divclass="center">			<h2class="form-title"id="login"><span></span>登录</h2>			<divclass="form-holder">				<inputtype="email"class="input"placeholder="邮箱" />				<inputtype="password"class="input"placeholder="密码" />			</div>			<buttonclass="submit-btn">登录</button>		</div>	</div></div><scriptsrc="js/script.js"></script></body></html>
style.CSS
htmlbody {  position: relative;  min-height100vh;  background-color#E1E8EE;  display: flex;  align-items: center;  justify-content: center;  font-family"Fira Sans", Helvetica, Arial, sans-serif;  -webkit-font-smoothing: antialiased;  -moz-osx-font-smoothing: grayscale;}.form-structor {  background-color#222;  border-radius15px;  height550px;  width350px;  position: relative;  overflow: hidden;}.form-structor::after {  content"";  opacity0.8;  position: absolute;  top0;  right0;  bottom0;  left0;  background-repeat: no-repeat;  background-position: left bottom;  background-size500px;  background-imageurl("../img/32.jpg");}.form-structor .signup {  position: absolute;  top50%;  left50%;  -webkit-transformtranslate(-50%, -50%);  width65%;  z-index5;  -webkit-transition: all 0.3s ease;}.form-structor .signup.slide-up {  top5%;  -webkit-transformtranslate(-50%0%);  -webkit-transition: all 0.3s ease;}.form-structor .signup.slide-up .form-holder.form-structor .signup.slide-up .submit-btn {  opacity0;  visibility: hidden;}.form-structor .signup.slide-up .form-title {  font-size1em;  cursor: pointer;}.form-structor .signup.slide-up .form-title span {  margin-right5px;  opacity1;  visibility: visible;  -webkit-transition: all 0.3s ease;}.form-structor .signup .form-title {  color#fff;  font-size1.7em;  text-align: center;}.form-structor .signup .form-title span {  colorrgba(0000.4);  opacity0;  visibility: hidden;  -webkit-transition: all 0.3s ease;}.form-structor .signup .form-holder {  border-radius15px;  background-color#fff;  overflow: hidden;  margin-top50px;  opacity1;  visibility: visible;  -webkit-transition: all 0.3s ease;}.form-structor .signup .form-holder .input {  border0;  outline: none;  box-shadow: none;  display: block;  height30px;  line-height30px;  padding8px 15px;  border-bottom1px solid #eee;  width100%;  font-size12px;}.form-structor .signup .form-holder .input:last-child {  border-bottom0;}.form-structor .signup .form-holder .input::-webkit-input-placeholder {  colorrgba(0000.4);}.form-structor .signup .submit-btn {  background-colorrgba(0000.4);  colorrgba(2552552550.7);  border0;  border-radius15px;  display: block;  margin15px auto;  padding15px 45px;  width100%;  font-size13px;  font-weight: bold;  cursor: pointer;  opacity1;  visibility: visible;  -webkit-transition: all 0.3s ease;}.form-structor .signup .submit-btn:hover {  transition: all 0.3s ease;  background-colorrgba(0000.8);}.form-structor .login {  position: absolute;  top20%;  left0;  right0;  bottom0;  background-color#fff;  z-index5;  -webkit-transition: all 0.3s ease;}.form-structor .login::before {  content"";  position: absolute;  left50%;  top: -20px;  -webkit-transformtranslate(-50%0);  background-color#fff;  width200%;  height250px;  border-radius50%;  z-index4;  -webkit-transition: all 0.3s ease;}.form-structor .login .center {  position: absolute;  topcalc(50% - 10%);  left50%;  -webkit-transformtranslate(-50%, -50%);  width65%;  z-index5;  -webkit-transition: all 0.3s ease;}.form-structor .login .center .form-title {  color#000;  font-size1.7em;  text-align: center;}.form-structor .login .center .form-title span {  colorrgba(0000.4);  opacity0;  visibility: hidden;  -webkit-transition: all 0.3s ease;}.form-structor .login .center .form-holder {  border-radius15px;  background-color#fff;  border1px solid #eee;  overflow: hidden;  margin-top50px;  opacity1;  visibility: visible;  -webkit-transition: all 0.3s ease;}.form-structor .login .center .form-holder .input {  border0;  outline: none;  box-shadow: none;  display: block;  height30px;  line-height30px;  padding8px 15px;  border-bottom1px solid #eee;  width100%;  font-size12px;}.form-structor .login .center .form-holder .input:last-child {  border-bottom0;}.form-structor .login .center .form-holder .input::-webkit-input-placeholder {  colorrgba(0000.4);}.form-structor .login .center .submit-btn {  background-color#6B92A4;  colorrgba(2552552550.7);  border0;  border-radius15px;  display: block;  margin15px auto;  padding15px 45px;  width100%;  font-size13px;  font-weight: bold;  cursor: pointer;  opacity1;  visibility: visible;  -webkit-transition: all 0.3s ease;}.form-structor .login .center .submit-btn:hover {  transition: all 0.3s ease;  background-colorrgba(0000.8);}.form-structor .login.slide-up {  top90%;  -webkit-transition: all 0.3s ease;}.form-structor .login.slide-up .center {  top10%;  -webkit-transformtranslate(-50%0%);  -webkit-transition: all 0.3s ease;}.form-structor .login.slide-up .form-holder.form-structor .login.slide-up .submit-btn {  opacity0;  visibility: hidden;  -webkit-transition: all 0.3s ease;}.form-structor .login.slide-up .form-title {  font-size1em;  margin0;  padding0;  cursor: pointer;  -webkit-transition: all 0.3s ease;}.form-structor .login.slide-up .form-title span {  margin-right5px;  opacity1;  visibility: visible;  -webkit-transition: all 0.3s ease;}
script.js
console.clear();const loginBtn = document.getElementById('login');const signupBtn = document.getElementById('signup');loginBtn.addEventListener('click'(e) => {    let parent = e.target.parentNode.parentNode;    Array.from(e.target.parentNode.parentNode.classList).find((element) => {        if(element !== "slide-up") {            parent.classList.add('slide-up')        }else{            signupBtn.parentNode.classList.add('slide-up')            parent.classList.remove('slide-up')        }    });});signupBtn.addEventListener('click'(e) => {    let parent = e.target.parentNode;    Array.from(e.target.parentNode.classList).find((element) => {        if(element !== "slide-up") {            parent.classList.add('slide-up')        }else{            loginBtn.parentNode.parentNode.classList.add('slide-up')            parent.classList.remove('slide-up')        }    });});