這是一款使用Jquery和css3打造的GOOGLE樣式的使用者登入介面特效。該登入介面特效中,右上角的小問號和錯誤提示小圖示使用SVG來製作,使用者名稱和密碼輸入框採用浮動標籤特效,可點選的按鈕上使用了很酷的點選波特效。整個登入介面簡潔大方,互動性很強。
線上演示 下載
該使用者登入介面使用HTML5的<errorp>
標籤來提示使用者輸入錯誤。
HTML結構
該GOOGLE樣式使用者登入介面的HTML結構使用標準的Form
表單結構,圖示使用<i>
標籤來包裹一個SVG圖形,錯誤資訊則用<erroru>
來製作:
< div class="login"> < i ripple> < svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> < path fill="#C7C7C7" d="..."/> < div class="photo"> < span >Sign in with your Google Account < form action="" id="login-form"> < div id="u" class="form-group"> < input id="username" spellcheck=false class="form-control" name="username" type="text" size="18" alt="login" required=""> < span class="form-highlight"> < span class="form-bar"> < label for="username" class="float-label">Email < erroru > Username is required < i > < svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> ... < div id="p" class="form-group"> < input id="password" class="form-control" spellcheck=false name="password" type="password" size="18" alt="login" required=""> < span class="form-highlight"> < span class="form-bar"> < label for="password" class="float-label">Password < errorp > Password is required < i > < svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"> ... < div class="form-group"> < input type="checkbox" id="rem"> < label for="rem">Stay Signed in < button id="submit" type="submit" ripple>Sign in
CSS樣式
該登入介面的使用者頭像是使用CSS ::before
和::after
偽元素製作的。
.login .photo { position : relative ; width : 100px ; height : 100px ; margin : 30px 135px ; border-radius: 50% ; background : rgb ( 223 , 223 , 223 ); border : 13px solid rgb ( 223 , 223 , 223 ); overflow : hidden !important ; transform: rotate( -1 deg); } .login .photo:before { position : absolute ; content : '' ; width : 35px ; height : 35px ; top : 0px ; right : 20px ; border-radius: 50% ; background : #aaa ; border : 2px solid #fff ; transform: scale( 0 ); transition: 0.5 s cubic-bezier( 0.68 , -0.55 , 0.27 , 1.55 ); -webkit-animation: user-head 0.5 s 0 s forwards; -moz-animation: user-head 0.5 s 0 s forwards; animation: user-head 0.5 s 0 s forwards; } .login .photo:after { position : absolute ; content : '' ; width : 140px ; height : 220px ; top : 38px ; right : -32px ; border-radius: 50% ; background : #aaa ; border : 2px solid #fff ; transform: translateY( 36px ); transition: 0.5 s cubic-bezier( 0.68 , -0.55 , 0.27 , 1.55 ); -webkit-animation: user-body 0.5 s 0.3 s forwards; -moz-animation: user-body 0.5 s 0.3 s forwards; animation: user-body 0.5 s 0.3 s forwards; }
浮動標籤float-label
使用絕對定位,當輸入框聚焦或:valid
的時候,浮動標籤使用指定的過渡動畫向上移動。
.float-label { position : absolute ; left : 0 ; top : 10px ; font-size : 16px ; color : #999 ; font-weight : 300 ; transition: 0.2 s ease all ; -moz-transition: 0.2 s ease all ; -webkit-transition: 0.2 s ease all ; } .form-control:focus ~ .float-label, .form-control:valid ~ .float-label { top : -15px ; font-size : 12px ; }
該登入介面中還使用了一個有趣的特效-點選波特效。當在按鈕上點選的時候,一個光圈從被點選的點開始,會像衝擊波一樣向外輻射。在HTML程式碼中,每個帶有點選波特效的元素都有一個自定義的屬性ripple
。
[ripple] { position : relative ; overflow : hidden ; -webkit-transition: box-shadow . 4 s; -moz-transition: box-shadow . 4 s; -ms-transition: box-shadow . 4 s; -o-transition: box-shadow . 4 s; transition: box-shadow . 4 s; cursor : inherit; } [ripple] .touch { background : rgba( 255 , 255 , 255 , 0.3 ); pointer-events: none ; border-radius: 100% ; }