TweenMax+MorphSVGPlugin实现有趣图像交互输入登录表单动画效果代码
代码语言:html
所属分类:表单美化
代码描述:TweenMax+MorphSVGPlugin实现有趣图像交互输入登录表单动画效果代码,输入email时,图像人物会盯着你,当输入密码时,他又会遮挡自己的眼睛,非常有趣。
代码标签: TweenMax MorphSVGPlugin 表单 动画 交互
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600,700" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/reset.min.css">
<style>
/* colors */
html {
width: 100%;
height: 100%;
}
body {
background-color: #eff3f4;
position: relative;
width: 100%;
height: 100%;
font-size: 16px;
font-family: "Source Sans Pro", sans-serif;
font-weight: 400;
-webkit-font-smoothing: antialiased;
}
form {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
display: block;
width: 100%;
max-width: 400px;
background-color: #FFF;
margin: 0;
padding: 2.25em;
box-sizing: border-box;
border: solid 1px #DDD;
border-radius: 0.5em;
font-family: "Source Sans Pro", sans-serif;
}
form .svgContainer {
position: relative;
width: 200px;
height: 200px;
margin: 0 auto 1em;
border-radius: 50%;
pointer-events: none;
}
form .svgContainer div {
position: relative;
width: 100%;
height: 0;
overflow: hidden;
border-radius: 50%;
padding-bottom: 100%;
}
form .svgContainer .mySVG {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
pointer-events: none;
}
form .svgContainer:after {
content: "";
position: absolute;
top: 0;
left: 0;
z-index: 10;
width: inherit;
height: inherit;
box-sizing: border-box;
border: solid 2.5px #217093;
border-radius: 50%;
}
form .inputGroup {
margin: 0 0 2em;
padding: 0;
position: relative;
}
form .inputGroup:last-of-type {
margin-bottom: 0;
}
form label {
margin: 0 0 12px;
display: block;
font-size: 1.25em;
color: #217093;
font-weight: 700;
font-family: inherit;
}
form input[type=email], form input[type=text], form input[type=number], form input[type=url], form input[type=search], form input[type=password] {
display: block;
margin: 0;
padding: 0 1em 0;
padding: 0.875em 1em 0;
background-color: #f3fafd;
border: solid 2px #217093;
border-radius: 4px;
-webkit-appearance: none;
box-sizing: border-box;
width: 100%;
height: 65px;
font-size: 1.55em;
color: #353538;
font-weight: 600;
font-family: inherit;
transition: box-shadow 0.2s linear, border-color 0.25s ease-out;
}
form input[type=email]:focus, form input[type=text]:focus, form input[type=number]:focus, form input[type=url]:focus, form input[type=search]:focus, form input[type=password]:focus {
outline: none;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
border: solid 2px #4eb8dd;
}
form button {
display: block;
margin: 0;
padding: 0.65em 1em 1em;
background-color: #4eb8dd;
border: none;
border-radius: 4px;
box-sizing: border-box;
box-shadow: none;
width: 100%;
height: 65px;
font-size: 1.55em;
color: #FFF;
font-weight: 600;
font-family: inherit;
transition: background-color 0.2s ease-out;
}
form button:hover, form button:active {
background-color: #217093;
}
form .inputGroup1 .helper {
position: absolute;
z-index: 1;
font-family: inherit;
}
form .inputGroup1 .helper1 {
top: 0;
left: 0;
transform: translate(1em, 2.2em) scale(1);
transform-origin: 0 0;
color: #217093;
font-size: 1.55em;
font-weight: 400;
opacity: 0.65;
pointer-events: none;
transition: transform 0.2s ease-out, opacity 0.2s linear;
}
form .inputGroup1.focusWithText .helper {
transform: translate(1em, 1.55em) scale(0.6);
opacity: 1;
}
form .inputGroup2 input[type=password] {
padding: 0.4em 1em 0.5em;
}
form .inputGroup2 input[type=text] {
padding: 0.025em 1em 0;
}
form .inputGroup2 #showPasswordToggle {
display: block;
padding: 0 0 0 1.45em;
position: absolute;
top: 0.25em;
right: 0;
font-size: 1em;
}
form .inputGroup2 #showPasswordToggle input {
position: absolute;
z-index: -1;
opacity: 0;
}
form .inputGroup2 #showPasswordToggle .indicator {
position: absolute;
top: 0;
left: 0;
height: 0.85em;
width: 0.85em;
background-color: #f3fafd;
border: solid 2px #217093;
border-radius: 3px;
}
form .inputGroup2 #showPasswordToggle .indicator:after {
content: "";
position: absolute;
left: 0.25em;
top: 0.025em;
width: 0.2em;
height: 0.5em;
border: solid #217093;
border-width: 0 3px 3px 0;
transform: rotate(45deg);
visibility: hidden;
}
form .inputGroup2 #showPasswordToggle input:checked ~ .indicator:after {
visibility: visible;
}
form .inputGroup2 #showPasswordToggle input:focus ~ .indicator, form .inputGroup2 #showPasswordToggle input:hover ~ .indicator {
border-color: #4eb8dd;
}
form .inputGroup2 #showPasswordToggle input:disabled ~ .indicator {
opacity: 0.5;
}
form .inputGroup2 #showPasswordToggle input:disabled ~ .indicator:after {
visibility: hidden;
}
</style>
</head>
<body>
<!-- partial:index.partial.html -->
<form>
<div class="svgContainer">
<div>
<svg class="mySVG" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 200 200">
<defs>
<circle id="armMaskPath" cx="100" cy="100" r="100"/>
</defs>
<clipPath id="armMask">
<use xlink:href="#armMaskPath" overflow="visible"/>
</clipPath>
<circle cx="100" cy="100" r="100" fill="#a9ddf3"/>
<g class="body">
<path class="bodyBGchanged" style="display: none;" fill="#FFFFFF" d="M200,122h.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0