<! DOCTYPE html >
< html lang = " en" >
< head> < meta charset = " UTF-8" > < title> 注册登录界面Ⅰ</ title> < link rel = " stylesheet" href = " https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css" >
< link rel = " stylesheet" href = " ./style.css" >
</ head>
< body>
< div class = " container right-panel-active" > < div class = " container_form container--signup" > < form action = " #" class = " form" id = " form1" > < h2 class = " form_title" > Sign Up</ h2> < input type = " text" placeholder = " User" class = " input" /> < input type = " email" placeholder = " Email" class = " input" /> < input type = " password" placeholder = " Password" class = " input" /> < button class = " btn" > Sign Up</ button> </ form> </ div> < div class = " container_form container--signin" > < form action = " #" class = " form" id = " form2" > < h2 class = " form_title" > Sign In</ h2> < input type = " email" placeholder = " Email" class = " input" /> < input type = " password" placeholder = " Password" class = " input" /> < a href = " #" class = " link" > Forgot your password?</ a> < button class = " btn" > Sign In</ button> </ form> </ div> < div class = " container_overlay" > < div class = " overlay" > < div class = " overlay_panel overlay--left" > < button class = " btn" id = " signIn" > Sign In</ button> </ div> < div class = " overlay_panel overlay--right" > < button class = " btn" id = " signUp" > Sign Up</ button> </ div> </ div> </ div>
</ div>
< div class = " slidershow" > < div class = " slidershow--image" style = " background-image : url ( 'https://source.unsplash.com/Snqdjm71Y5s' ) " > </ div> < div class = " slidershow--image" style = " background-image : url ( 'https://source.unsplash.com/5APj-fzKE-k' ) " > </ div> < div class = " slidershow--image" style = " background-image : url ( 'https://source.unsplash.com/wnbBH_CGOYQ' ) " > </ div> < div class = " slidershow--image" style = " background-image : url ( 'https://source.unsplash.com/OkTfw7fXLPk' ) " > </ div>
</ div> < script src = " ./script.js" > </ script>
</ body>
</ html>
const signInBtn = document. getElementById ( "signIn" ) ;
const signUpBtn = document. getElementById ( "signUp" ) ;
const firstForm = document. getElementById ( "form1" ) ;
const secondForm = document. getElementById ( "form2" ) ;
const container = document. querySelector ( ".container" ) ; signInBtn. addEventListener ( "click" , ( ) => { container. classList. remove ( "right-panel-active" ) ;
} ) ; signUpBtn. addEventListener ( "click" , ( ) => { container. classList. add ( "right-panel-active" ) ;
} ) ; firstForm. addEventListener ( "submit" , ( e ) => e. preventDefault ( ) ) ;
secondForm. addEventListener ( "submit" , ( e ) => e. preventDefault ( ) ) ;
:root { --white : #e9e9e9; --gray : #333; --blue : #095c91; --blue-r : #315a7491; --lightblue : #0393a3; --button-radius : 0.7rem; --max-width : 758px; --max-height : 420px; font-size : 16px; font-family : -apple-system, BlinkMacSystemFont, "Segoe UI" , Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans" , "Helvetica Neue" , sans-serif;
} body { align-items : center; background-color : var ( --white) ; background-attachment : fixed; background-position : center; background-repeat : no-repeat; background-size : cover; display : grid; height : 100vh; place-items : center;
} .form_title { font-weight : 300; margin : 0; margin-bottom : 1.25rem;
} .link { color : var ( --gray) ; font-size : 0.9rem; margin : 1.5rem 0; text-decoration : none;
} .container { background-color : var ( --white) ; border-radius : var ( --button-radius) ; box-shadow : 0 0.9rem 1.7rem rgba ( 0, 0, 0, 0.25) , 0 0.7rem 0.7rem rgba ( 0, 0, 0, 0.22) ; height : var ( --max-height) ; max-width : var ( --max-width) ; overflow : hidden; position : relative; width : 100%;
} .container_form { height : 100%; position : absolute; top : 0; transition : all 0.6s ease-in-out;
} .container--signin { left : 0; width : 50%; z-index : 5;
} .container.right-panel-active .container--signin { transform : translateX ( 100%) ;
} .container--signup { left : 0; opacity : 0; width : 50%; z-index : 4;
} .container.right-panel-active .container--signup { -webkit-animation : show 0.6s; animation : show 0.6s; opacity : 1; transform : translateX ( 100%) ; z-index : 8;
} .container_overlay { height : 100%; left : 50%; overflow : hidden; position : absolute; top : 0; transition : transform 0.6s ease-in-out; width : 50%; z-index : 100;
} .container.right-panel-active .container_overlay { transform : translateX ( -100%) ;
} .overlay { background-color : rgba ( 255, 255, 255, 0.25) ; background-attachment : fixed; background-position : center; background-repeat : no-repeat; background-size : cover; height : 100%; left : -100%; position : relative; transform : translateX ( 0) ; transition : transform 0.6s ease-in-out; width : 200%;
} .container.right-panel-active .overlay { transform : translateX ( 50%) ;
} .overlay_panel { align-items : center; display : flex; flex-direction : column; height : 100%; justify-content : center; position : absolute; text-align : center; top : 0; transform : translateX ( 0) ; transition : transform 0.6s ease-in-out; width : 50%;
} .overlay--left { transform : translateX ( -20%) ;
} .container.right-panel-active .overlay--left { transform : translateX ( 0) ;
} .overlay--right { right : 0; transform : translateX ( 0) ;
} .container.right-panel-active .overlay--right { transform : translateX ( 20%) ;
} .btn { background-color : var ( --blue) ; background-image : linear-gradient ( 90deg, var ( --blue) 0%, var ( --lightblue) 74%) ; border-radius : 20px; border : 0.2px solid var ( --blue-r) ; color : var ( --white) ; cursor : pointer; font-size : 0.8rem; font-weight : bold; letter-spacing : 0.1rem; padding : 0.9rem 4rem; text-transform : uppercase; transition : transform 80ms ease-in;
} .form > .btn { margin-top : 1.5rem;
} .btn:active { transform : scale ( 0.95) ;
} .btn:focus { outline : none;
} .form { background-color : var ( --white) ; display : flex; align-items : center; justify-content : center; flex-direction : column; padding : 0 3rem; height : 100%; text-align : center;
} .input { background-color : #fff; border : none; padding : 0.9rem 0.9rem; margin : 0.5rem 0; width : 100%;
} @-webkit-keyframes show { 0%,49.99% { opacity : 0; z-index : 4; } 50%,100% { opacity : 1; z-index : 8; }
} @keyframes show { 0%,49.99% { opacity : 0; z-index : 4; } 50%,100% { opacity : 1; z-index : 8; }
} .slidershow { position : absolute; width : 100vw; height : 100vh; overflow : hidden;
} .slidershow--image { position : absolute; width : 100%; height : 100%; background : no-repeat 50% 50%; background-size : cover; -webkit-animation-name : kenburns; animation-name : kenburns; -webkit-animation-timing-function : linear; animation-timing-function : linear; -webkit-animation-iteration-count : infinite; animation-iteration-count : infinite; -webkit-animation-duration : 16s; animation-duration : 16s; opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ;
} .slidershow--image:nth-child(1) { -webkit-animation-name : kenburns-1; animation-name : kenburns-1; z-index : 3;
} .slidershow--image:nth-child(2) { -webkit-animation-name : kenburns-2; animation-name : kenburns-2; z-index : 2;
} .slidershow--image:nth-child(3) { -webkit-animation-name : kenburns-3; animation-name : kenburns-3; z-index : 1;
} .slidershow--image:nth-child(4) { -webkit-animation-name : kenburns-4; animation-name : kenburns-4; z-index : 0;
} @-webkit-keyframes kenburns-1 { 0% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 1.5625% { opacity : 1; } 23.4375% { opacity : 1; } 26.5625% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; } 100% { opacity : 0; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 98.4375% { opacity : 0; -webkit-transform : scale ( 1.21176) ; transform : scale ( 1.21176) ; } 100% { opacity : 1; }
} @keyframes kenburns-1 { 0% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 1.5625% { opacity : 1; } 23.4375% { opacity : 1; } 26.5625% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; } 100% { opacity : 0; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 98.4375% { opacity : 0; -webkit-transform : scale ( 1.21176) ; transform : scale ( 1.21176) ; } 100% { opacity : 1; }
} @-webkit-keyframes kenburns-2 { 23.4375% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 26.5625% { opacity : 1; } 48.4375% { opacity : 1; } 51.5625% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; } 100% { opacity : 0; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; }
} @keyframes kenburns-2 { 23.4375% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 26.5625% { opacity : 1; } 48.4375% { opacity : 1; } 51.5625% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; } 100% { opacity : 0; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; }
} @-webkit-keyframes kenburns-3 { 48.4375% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 51.5625% { opacity : 1; } 73.4375% { opacity : 1; } 76.5625% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; } 100% { opacity : 0; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; }
} @keyframes kenburns-3 { 48.4375% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 51.5625% { opacity : 1; } 73.4375% { opacity : 1; } 76.5625% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; } 100% { opacity : 0; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; }
} @-webkit-keyframes kenburns-4 { 73.4375% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 76.5625% { opacity : 1; } 98.4375% { opacity : 1; } 100% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; }
} @keyframes kenburns-4 { 73.4375% { opacity : 1; -webkit-transform : scale ( 1.2) ; transform : scale ( 1.2) ; } 76.5625% { opacity : 1; } 98.4375% { opacity : 1; } 100% { opacity : 0; -webkit-transform : scale ( 1) ; transform : scale ( 1) ; }
}