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