iotcat 4 years ago
parent be3d2a0032
commit 0060ca623a
  1. 27
      api/emailCode.php
  2. 28
      api/smsCode.php
  3. 21
      api/verCode.php
  4. 29
      css/background.css
  5. 299
      css/base.css
  6. 683
      css/iconfont.css
  7. 1
      css/normalize.css
  8. 346
      css/reg.css
  9. 48
      getpass.html
  10. BIN
      img/bj.jpg
  11. BIN
      img/logo.png
  12. 105
      index.html
  13. 63
      js/agree.js
  14. 4
      js/jquery.js
  15. 312
      js/login.js
  16. 31
      js/polygonizr.min.js
  17. 67
      reg.html

@ -0,0 +1,27 @@
<?php
$redis = new redis();
$redis->connect('redis',6379);
$email = $_REQUEST['email'];
if(!isset($email)) die();
$code = rand(100000, 999999);
$redis->set('vercode/'.$email, $code);
$redis->expire('vercode/'.$email, 600);
$url = 'https://api.yimian.xyz/mail/?to='.$email;
$url .= '&from=Ushio-Login&subject=Ushio登录验证码&body=您的验证码为'.$code;
$url .= ',请在10分钟内填写!';
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);

@ -0,0 +1,28 @@
<?php
$redis = new redis();
$redis->connect('redis',6379);
$tel = $_REQUEST['tel'];
if(!isset($tel)) die();
$code = rand(100000, 999999);
$redis->set('vercode/'.$tel, $code);
$redis->expire('vercode/'.$tel, 300);
$url = 'https://api.yimian.xyz/sms/?to='.$tel;
$url .= '&template=3&s0=Ushio-Login&s1=验证码&s2='.$code;
$url .= '&t='.time();
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);

@ -0,0 +1,21 @@
<?php
$redis = new redis();
$redis->connect('redis',6379);
$usr = $_REQUEST['usr'];
$code = $_REQUEST['code'];
if(!isset($usr)) die();
if(!isset($code)) die();
if($redis->exists('vercode/'.$usr) && $redis->get('vercode/'.$usr) == $code){
echo json_encode(array("code"=> 200, "message" => "Verified successfully!"));
}else{
echo json_encode(array("code"=> 500, "message"=>"Error!!"));
}

@ -0,0 +1,29 @@
body, html { font-size: 100%; padding: 0; margin: 0;}
/* Reset */
*,
*:after,
*:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
.clearfix:before,
.clearfix:after {
content: " ";
display: table;
}
.clearfix:after {
clear: both;
}
body{
background: #494A5F;
color: #D5D6E2;
font-weight: 500;
font-size: 1.05em;
font-family: "Microsoft YaHei","Segoe UI", "Lucida Grande", Helvetica, Arial,sans-serif;
}

@ -0,0 +1,299 @@
/**
* 初å§åŒæµè§ˆå¨é»˜è®¤æ ·å¼
**/
html,body,div,ol,ul,li,dl,dt,dd,h1,h2,h3,h4,h5,h6,input,button,textarea,p,span,table,th,td,form{margin:0;padding:0}
body,input,button,select,textarea{font:12px/1.5 "Microsoft Yahei","Helvetica Neue";color:#34495e;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-moz-font-feature-settings: "liga","kern";}
table{border-collapse:collapse;border-spacing:0}
img,a img{border:0}
a{color:#369;outline:medium none;text-decoration:none;}
a:hover{text-decoration:none}
label{cursor:pointer}
ul li,.ol li{list-style:none}
em,cite,i{font-style:normal}
p{word-wrap: break-word; word-break: break-all;} /*全部英文字符下自动换行*/
/* 去除Chrome等浏览器文本框默认发光边框 */
input:focus, textarea:focus {outline: none;}
/* 去除IE10+浏览器文本框后面的小叉叉 */
input::-ms-clear {display: none;}
/* 禁止多行文本框textarea拖拽 */
textarea {resize: none;}
/* ==全局通用样式== */
/* 避免因子元素浮动而导致的父元素高度缺失能问题 */
.cl:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .cl { zoom: 1; }
/* 浮动 */
.z { float: left !important; }
.y { float: right !important; }
/* 鼠标样式,可以根据需要按序添加 */
.cur1 { cursor: pointer; }
/* 显示/隐藏 */
.show { display: block !important; }
.hide { display: none !important; }
/* 相对定位 */
.pos { position: relative; }
/* 灰色 */
.grays {
filter: url("data:image/svg+xml;utf8,<svg xmlns=\'http://www.w3.org/2000/svg\'><filter id=\'grayscale\'><feColorMatrix type=\'matrix\' values=\'0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\'/></filter></svg>#grayscale"); /* Firefox 3.5+ */
-webkit-filter: grayscale(100%); /* chrome+ */
filter: grayscale(100%); /* 未来浏览器 */
filter: gray; /* ie6-8 */
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);/*ie6-9 */
}
/* 通用容器,定义页面宽度 具有 n, m, w 三个级别 */
.wpn { width: 1180px; margin: 0 auto; } /* 4 列 * 300 */
.wpm { width: 1480px; margin: 0 auto; } /* 5 列 * 300 */
.wpw { width: 1780px; margin: 0 auto; } /* 6 列 * 300 */
.wpf { width: 100%; max-width: 1260px; margin: 0 auto; } /* 4 列 * 300 */ /*实际宽度1180+左右边距各40*/
.wpf-row { width: 93.6507936%; margin: 0 3.1746031%;} /*1180/1260,40/1260*/
.row { width: 100% }
/* 主体内容 */
.ct { display: block; min-height: 530px;}
/* 主体内容 - 带边栏 */
/*.ctn .mn { width: 880px; float: left; }
.ctn .sd { width: 280px; float: right; }*/
.ctn .mn {margin:0 300px 0 0; padding-top: 20px;}
.ctn .sd {position: absolute; right: 280px; top: 0; bottom: 0; }
/* 文本属性:字号、颜色、粗细、正斜 */
/* 字号 */
.f12 { font-size: 12px; }
.f14 { font-size: 14px; }
.f16 { font-size: 16px; }
.f26 { font-size: 26px; }
/* 颜色 */
.b8c5ce { color: #b8c5ce; }
.ff8326 { color: #ff8326; }
/* 粗细 */
.b { font-weight: bold; }
/* 正斜 */
.i { font-style: italic; }
/* 外边距样式,作用于元素的上下外边距,上下各具有 n, m, w 三个级别 */
.mtn { margin-top: 5px !important; }
.mtm { margin-top: 10px !important; }
.mtw { margin-top: 20px !important; }
.mbn { margin-bottom: 5px !important; }
.mbm { margin-bottom: 10px !important; }
.mbw { margin-bottom: 20px !important; }
.mrn { margin-right: 5px !important; }
.mrm { margin-right: 10px !important; }
.mrw { margin-right: 20px !important; }/*20/1180=1.6949152%*/
.mln { margin-left: 5px !important; }
.mlm { margin-left: 10px !important; }
.mlw { margin-left: 20px !important; }
.mtbn { margin: 5px 0 !important; }
.mtbm { margin: 10px 0 !important; }
.mtbw { margin: 20px 0 !important; }
.mlrn { margin: 0 5px !important; }
.mlrm { margin: 0 10px !important; }
.mlrw { margin: 0 20px !important; }
/* 内边距样式,作用于元素的上下内边距,上下各具有 n, m, w 三个级别 */
.ptn { padding-top: 5px !important; }
.ptm { padding-top: 10px !important; }
.ptw { padding-top: 20px !important; }
.pbn { padding-bottom: 5px !important; }
.pbm { padding-bottom: 10px !important; }
.pbw { padding-bottom: 20px !important; }
.ptbn { padding: 5px 0 !important; }
.ptbm { padding: 10px 0 !important; }
.ptbw { padding: 20px 0 !important; }
.plrn { padding: 0 5px !important; }
.plrm { padding: 0 10px !important; }
.plrw { padding: 0 20px !important; }
/* ==== 按钮 Buttons 2015-1-12==== */
.lang-btn {
display: inline-block;
position: relative;
vertical-align: middle;
cursor: pointer;
white-space: nowrap;
background-color: #3499DA;
height: 40px;
line-height: 40px;
font-size: 16px;
color: #FFF;
border: none;
letter-spacing: 1px;
overflow: hidden;
text-align: center;
border-radius:2px;
}
/* 无背景按钮 */
.lang-cancel{background:0;color:#2d3e50}
/* 取消按钮 */
.lang-btn-none{background:#e4e9ed;color:#2d3e50;}
.lang-btn-none:hover{background:#e4e9ed;color:#2d3e50;}
.lang-btn-c{display:inline-block;position:relative;vertical-align:middle;cursor:pointer;white-space:nowrap;background:#e4e9ed;height:40px;line-height:40px;
font-size:16px;color:#2d3e50;border:0;letter-spacing:1px;overflow:hidden;text-align:center;border-radius:2px}
/* 修改按钮的默认状态 */
.lang-btn:active{outline:0;box-shadow:none}
.lang-btn:focus{border:0;outline:0;box-shadow:none}
.lang-btn:hover{text-decoration:none}
/* 火狐兼容 */
.lang-btn::-moz-focus-inner {border: 0;padding: 0;}
/* 成功 */
.lang-btn-success { background-color: #4a993e; }
/* 错误 */
.lang-btn-eroor { background-color: #b33630; }
/* 不可提交状态 */
.lang-btn-disabled { background-color: #ddd; color: #777; cursor: default; }
/* 展示 */
.lang-btn-show { background-color: #e4e9ed; color: #2d3e50; cursor: default; }
/* 关联 */
.lang-btn-relating { background-color: #b8c5ce; color: #2d3e50; }
/* 按钮文字 */
.lang-btn .lang-btn-content { padding: 0 30px; display: block; }
/* 大的 */
.lang-btn-big .lang-btn-content { padding: 0 45px; }
/* 巨大的 */
.lang-btn-huge { height: 50px; line-height: 50px; }
.lang-btn-huge .lang-btn-content { padding: 0 45px; }
/* 按钮的颜色 */
.lang-btn-col-blue{background:#3499DA;color:#fff;}
.lang-btn-col-blue:hover{background:#3da2e3;color:#fff;}
/* 固定宽度的 */
.lang-btn-fixed-small { width: 100px; }
.lang-btn-fixed-small .lang-btn-content { padding: 0; }
.lang-btn-fixed-big { width: 160px; }
.lang-btn-fixed-big .lang-btn-content { padding: 0; }
.lang-btn-fixed-Large { width: 100%; }
.lang-btn-fixed-Large .lang-btn-content { padding: 0; }
/* 小字号按钮 举报弹出框再用 */
.submit-button{width:80px;height:40px;background:#3499da;color:#fff;font-size:14px;cursor:pointer;line-height:40px;border:0;border-radius:2px}
.submit-button:hover{background:#3da2e3;transition:all .4s ease-in-out 0s}
.submit-button:active{background:#2e93d4}
.mini-button-disabble{width:80px;height:40px;background:#b8c5ce;color:#fff;font-size:14px;cursor:pointer;line-height:40px;border:0;border-radius:2px}
.mini-button-disabble:hover{background:#c8d4db;transition:all .4s ease-in-out 0s}
.mini-button-disabble:active{background:#a9b9c3}
/* 按钮 Buttons END */
/* ==== 表单 Input 框 2015-2-28==== 以前的颜色b8c4ce*/
.lang-input{padding:14px 15px;height:20px;border:#e4e9ed 1px solid;border-radius:2px;background:#fff;color:#5d6d7e;font-size:16px;line-height:20px;box-sizing: content-box;}
.lang-input:focus {
border: 1px solid #3498db;
box-shadow: 0 0 4px rgba(41, 128, 185, 0.4);
}
/* 焦点/成功 */
.lang-input-on, .lang-input-success {
border: #3498db 1px solid;
box-shadow: 0 0 4px rgba(41, 128, 185, 0.4);
color: #34495e;
}
/* 错误 */
.lang-input-error {
border: #fcab2b 1px solid;
box-shadow: 0 0 4px rgba(252, 171, 43, 0.4);
}
/* form 表单固定宽度 */
.w520 { width: 488px; } /* 实际宽度520-内边距左右各15px-边框2 */
.w880 { width: 848px; } /* 实际宽度520-内边距左右各15px-边框2 */
.w580 { width: 548px; } /* 实际宽度520-内边距左右各15px-边框2 */
/* textarea使用 */
.h164 { height: 130px; }
.lh20 { line-height: 24px; }
.lang-must{ position: absolute; right: 11px; color: #FD8335!important; line-height: 50px!important;}
/* 表单 Input 框 END */
/* ====注册输入框 2015-1-12==== */
.login-icon { display: block; height: 40px; width: 100%; border-bottom: #e9ecee 1px solid; margin-top: 30px; }
/* 输入框活动状态/成功 */
.login-on, .login-success { border-bottom: #3498db 1px solid; }
.login-on .log-input, .login-error .log-input, .login-success .log-input { color: #5d6d7e; }
.login-on .iconfont, .login-success .iconfont{color: #3A99D8;}
/* 错误 */
.login-error { border-bottom: #fcab2b 1px solid; }
.login-error .iconfont{ color: #fcab2b;}
/* 登录输入框 */
.log-input { border: none; height: 20px; font-size: 16px; padding: 10px 2.5%; line-height: 20px; color: #b8c4ce; background: #fff; width: 90%;}
/*30/400=7.5%,360/400=90%,10/400=2.5%*/
.log-input-half { border: none; height: 20px; font-size: 16px; padding: 10px 5%; line-height: 20px; color: #b8c4ce; background: #fff; width: 80%;}
/*30/200=15%,160/200=80%,10/200=5%*/
.log-input::-moz-placeholder { color: #b8c4ce;}
.log-input::-ms-input-placeholder { color: #b8c4ce;}
.log-input::-webkit-input-placeholder { color: #b8c4ce;}
.log-input:placeholder { color: #b8c4ce;}
textarea::-moz-placeholder { color: #b8c4ce;}
textarea::-ms-input-placeholder { color: #b8c4ce;}
textarea::-webkit-input-placeholder { color: #b8c4ce;}
textarea:placeholder { color: #b8c4ce;}
/* 注册输入框 end */
/*message 提醒消息*/
#ajax-hook{ position:fixed; top:0; z-index:99999; width:100%;}
.globalInfoTip {z-index: 20; height: 60px;width: 100%;position: relative;cursor: pointer;}
.globalInfoTip p {text-align: center;font-size: 16px;height: 30px;line-height: 30px;padding: 15px 0;color: #FFF;position: relative;}
.globalInfoTip .infoTipBack {position: absolute;top: 0;left: 0;right: 0;bottom: 0;background: #3498db;box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);opacity: 0.8;filter:alpha(opacity=80);-moz-opacity: 0.8;-khtml-opacity: 0.8;}
.msg-bor{border-bottom-color:#e74c3c}
/*字体图标*/
.iconfont, [class^="icon-"], [class*=" icon-"] {
font-family:"iconfont" !important;
font-size:16px;
color: #b8c4ce;
font-style:normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-webkit-text-stroke-width: 0.2px;
-moz-osx-font-smoothing: grayscale;
}
[id^="xunlei_com"],[id*="xunlei_com"]{
display:none !important;
}
/*网站整体灰色背景*/
body,
.body-gray { background-color: #eff3f5; }
/*部分白色背景*/
.bg-white { background-color: #fff;}
/*认证*/
.icon-certified2{color: #e74c3c;font-size: 14px;}

File diff suppressed because one or more lines are too long

1
css/normalize.css vendored

@ -0,0 +1 @@
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block;}audio,canvas,video{display:inline-block;}audio:not([controls]){display:none;height:0;}[hidden]{display:none;}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;}body{margin:0;}a:focus{outline:thin dotted;}a:active,a:hover{outline:0;}h1{font-size:2em;margin:0.67em 0;}abbr[title]{border-bottom:1px dotted;}b,strong{font-weight:bold;}dfn{font-style:italic;}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0;}mark{background:#ff0;color:#000;}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em;}pre{white-space:pre-wrap;}q{quotes:"\201C" "\201D" "\2018" "\2019";}small{font-size:80%;}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;}sup{top:-0.5em;}sub{bottom:-0.25em;}img{border:0;}svg:not(:root){overflow:hidden;}figure{margin:0;}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em;}legend{border:0;padding:0;}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0;}button,input{line-height:normal;}button,select{text-transform:none;}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer;}button[disabled],html input[disabled]{cursor:default;}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box;}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none;}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}textarea{overflow:auto;vertical-align:top;}table{border-collapse:collapse;border-spacing:0;}

@ -0,0 +1,346 @@
@charset "utf-8";
body{
background-color: #3895e8;
}
.wrap{
box-sizing: border-box;
height: 100vh;
/*background: url("../img/bj.jpg") no-repeat center;*/
background-size: auto 100vh;
position: relative;
}
.form-data{
background-color: #ffffff;
width: 460px;
left: 50%;
margin-left: -230px;
border-radius: 5px;
box-shadow: 0 0 30px rgba(0,0,0,.1);
padding: 65px 0 30px 0;
position: fixed;
top: 15%;
}
.form-data .tel-warn{
position: absolute;
color: #ea5d5f;
font-size: 12px;
right: 0;
top: 22px;
}
.form-data .tel-warn i{
display: inline-block;
vertical-align: middle;
color: #ea5d5f;
font-size: 16px;
margin-top: -3px;
margin-left: 5px;
}
.form-data .p-input,.find_password .p-input{
padding: 5px 0;
height: 44px;
box-sizing: border-box;
border-bottom: 1px solid #e5e5e5;
width: 340px;
margin: 0 auto 16px;
line-height: 14px;
display: block;
}
.form-data .code{
width: 340px;
margin-left: 60px;
}
.form-data .code input{
width: 200px;
}
.form-data .code img{
width: 120px;
position: absolute;
right: 0;
bottom: 2px;
}
.form-data .code .img-err{
right: 120px;
top: 15px
}
.form-data .code a{
display: inline-block;
position: absolute;
width: 80px;
height: 34px;
line-height: 34px;
text-align: center;
color: #000;
left: 320px;
bottom: 0;
}
.form-data .send{
color: #969696;
position: absolute;
right: 0;
top: 24px;
z-index: 10;
}
.form-data .send:hover{
color: #3895e8;
}
.form-data .time{
color: #969696;
position: absolute;
right: 0;
top: 24px;
font-size: 14px;
}
.form-data label,.find_password label{
font-size: 14px;
position: absolute;
display: inline-block;
color: #cacaca;
top: 22px;
}
.form-data input,.find_password input{
outline: none;
border: none;
z-index: 5;
position: absolute;
top: 13px;
width: 340px;
background-color: transparent;
font-size: 20px;
}
input[type=number] {
-moz-appearance:textfield;
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0;
}
.form-data .head-logo{
position: absolute;
top: -47px;
left: 116px;
}
.reg_checkboxline{
font-size: 14px;
color: #cacaca;
height: 30px;
margin: 20px auto 20px;
line-height: 30px;
width: 340px;
}
.form-data .pass-warn{
width: 400px;
color: #ea5d5f;
font-size: 14px;
margin: 0 auto;
}
.reg_checkboxline p{
line-height: 30px;
padding: 0;
border-bottom: 0;
}
.reg_checkboxline a{
color: #9e9e9e;
}
.reg_checkboxline a:hover{
color: #3895e8;
}
.reg_checkboxline i.boxcol {
background: #3498db;
color: #fff;
}
.icon-ok-sign {
background: #b8c4ce;
border-radius: 2px;
margin-right: 5px;
cursor: pointer;
overflow: hidden;
width: 16px;
height: 16px;
font-size: 12px;
display: block;
margin-top: 7px;
line-height: 16px;
text-align: center;
}
.form-data .lang-btn{
width: 340px;
font-size: 18px;
font-weight: bold;
color: white;
height: 50px;
line-height: 50px;
text-align: center;
margin: 20px auto;
display: block;
border-radius: 5px;
cursor: pointer;
background-color: #42a5f5;
}
.form-data .lang-btn.off{
color: #a0a0a0;
background-color: #e5e5e5;
}
.bottom-info{
width: 400px;
line-height: 18px;
font-size: 14px;
color: #cacaca;
margin: 0 auto 30px;
text-align: center;
}
.bottom-info a{
color: #42a5f5;
}
.form-data .error{
color: #ea5d5f;
font-size: 14px;
top: -5px;
right: 0;
position: absolute;
}
.form-data .r-forget{
width: 340px;
margin: 0 auto;
}
.form-data .r-forget a{
font-size: 12px;
color: #8d8d8d;
}
.form-data .r-forget a:hover{
color: #3895e8;
}
.form-data .third-party{
width: 400px;
margin: 0 auto;
display: flex;
justify-content: space-around;
}
.form-data .third-party .icon-qq-round{
font-size: 40px;
color: #e5e5e5;
display: inline-block;
vertical-align: middle;
}
.form-data .third-party .icon-qq-round:hover{
color: #42a5f5;
}
.form-data .third-party .icon-weixin:hover{
color: #0fccbc;
}
.form-data .third-party .icon-sina1:hover{
color: #da2a2e;
}
.form-data .third-party .icon-weixin{
font-size: 40px;
color: #e5e5e5;
display: inline-block;
vertical-align: middle;
}
.form-data .third-party .icon-sina1{
font-size: 36px;
color: #e5e5e5;
display: inline-block;
vertical-align: middle;
}
.form-data .change-login{
width: 400px;
margin: 0 auto 10px;
display: flex;
justify-content: space-around;
font-size: 14px;
color: #cacaca;
}
.form-data .change-login p{
cursor: pointer;
}
.form-data .change-login p.on{
color: #76b9f7;
}
.find_password{
background-color: #ffffff;
width: 460px;
border-radius: 5px;
box-shadow: 0 0 30px rgba(0,0,0,.1);
padding: 30px 0;
left: 50%;
margin-left: -230px;
position: fixed;
top: 15%;
}
.find_password h4{
font-size: 18px;
color: #42a5f5;
text-align: center;
width: 400px;
margin: 0 auto;
}
.find_password .right_now{
width: 380px;
text-align: right;
margin: 20px auto 30px;
font-size: 12px;
color: #cacaca;
}
.find_password .right_now a{
color: #42a5f5;
}
.find_password .pc-very,.find_password .pc-code{
display: none;
}
.find_password .very2{
font-size: 14px;
position: absolute;
display: inline-block;
color: #cacaca;
top: 14px;
right: 0;
}
#pc_reset,#pc_reset2{
width: 280px;
}
.pc_reset span{
display: inline-block;
font-size: 14px;
position: absolute;
/* color: #cacaca; */
top: 14px;
right: 0;
}
.error-tip{
position: absolute;
right: 0;
top: 15px;
color: #ea5d5f;
font-size: 14px;
/* width: 400px; */
margin: 0 auto;
display: none;
}
.find_password .jihuo_email{
width: 400px;
text-align: center;
font-size: 14px;
color: #8d8d8d;
margin: 0 auto;
}
.find_password .again{
width: 400px;
color: #cacaca;
font-size: 12px;
text-align: center;
margin: 0 auto;
}
.find_password .again a{
color: #42a5f5;
}
.wrap .right{
position: absolute;
width: 1180px;
bottom: -80px;
text-align: center;
line-height: 40px;
left: 50%;
margin-left: -590px;
color: rgba(0,0,0,.3);
}

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>找回密码</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="网站关键词">
<meta name="Description" content="网站介绍">
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/iconfont.css">
<link rel="stylesheet" href="./css/reg.css">
</head>
<body>
<div id="ajax-hook"></div>
<div class="wrap">
<div class="wpn">
<div class="form-data find_password">
<h4>找回密码</h4>
<p class="right_now">已有账号,<a href="./login.html">马上登录</a></p>
<p class="p-input pos">
<label for="pc_tel">手机号/邮箱</label>
<input type="text" id="pc_tel">
<span class="tel-warn pc_tel-err hide"><em>最多五个字</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos pc-very">
<label for="veri-code">输入验证码</label>
<input type="number" id="veri-code">
<a href="javascript:;" class="send">发送验证码</a>
<span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide"><em>验证码错误,请重新输入</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos code pc-code">
<label for="veri">请输入验证码</label>
<input type="text" id="veri">
<img src="">
<span class="tel-warn img-err hide"><em>最多五个字</em><i class="icon-warn"></i></span>
<!-- <a href="javascript:;">换一换</a> -->
</p>
<button class="lang-btn next">下一步</button>
<p class="right">Powered by © 2018</p>
</div>
</div>
</div>
<script src="./js/jquery.js"></script>
<script src="./js/agree.js"></script>
<script src="./js/reset.js"></script>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 178 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

@ -0,0 +1,105 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Ushio Login</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="Login,ushio,iotcat,呓喵酱,yimian">
<meta name="Description" content="Login module for Ushio ecosystem.">
<link rel="stylesheet" type="text/css" href="css/normalize.css" />
<link rel="stylesheet" type="text/css" href="css/background.css">
<style type="text/css">
#site-landing {
position:relative;
height: 100%;
width: 100%;
background-image: linear-gradient(to top, #30cfd0 0%, #330867 100%);
}
html,body{
overflow: hidden;
height: 100%;
}
</style>
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/iconfont.css">
<link rel="stylesheet" href="./css/reg.css">
<script type="text/javascript">block_aplayer = true;</script>
<script src="https://cdn.yimian.xyz/ushio-js/ushio-head.min.js"></script>
</head>
<body>
<div id="ajax-hook"></div>
<div class="wrap"><div id="site-landing"></div>
<div class="wpn">
<div class="form-data pos" id="box" >
<a href=""><img src="./img/logo.png" class="head-logo"></a>
<div class="change-login">
<p class="account_number on">邮箱登录</p>
<p class="message">短信登录</p>
</div>
<div class="form1">
<p class="p-input pos">
<label for="num">邮箱</label>
<input type="text" id="num">
<span class="tel-warn num-err hide"><em>账号或密码错误,请重新输入</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos">
<label for="veri-code">输入验证码</label>
<input type="number" id="veri-code">
<a href="javascript:;" class="send">发送验证码</a>
<span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide">验证码错误</span>
</p>
</div>
<div class="form2 hide">
<p class="p-input pos">
<label for="num2">手机号</label>
<input type="number" id="num2">
<span class="tel-warn num2-err hide"><em>账号或密码错误</em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos">
<label for="veri-code">输入验证码</label>
<input type="number" id="veri-code">
<a href="javascript:;" class="send">发送验证码</a>
<span class="time hide"><em>120</em>s</span>
<span class="tel-warn error hide">验证码错误</span>
</p>
</div>
<div class="reg_checkboxline pos">
<span class="z"><i class="icon-ok-sign boxcol" nullmsg="请同意!"></i></span>
<input type="hidden" name="agree" value="1">
<div class="Validform_checktip"></div>
<p>我已阅读并接受 <a href="#" target="_brack">《XXXX协议说明》</a></p>
</div>
<!--<div class="r-forget cl">
<a href="./reg.html" class="z">账号注册</a>
<a href="./getpass.html" class="y">忘记密码</a>
</div>-->
<button class="lang-btn off log-btn">登录</button>
<!--<div class="third-party">
<a href="#" class="log-qq icon-qq-round"></a>
<a href="#" class="log-qq icon-weixin"></a>
<a href="#" class="log-qq icon-sina1"></a>
</div>-->
<p class="right">© 2018-<script type="text/javascript">document.write(new Date().getFullYear())</script> <a href="https://iotcat.me">iotcat</a> | Powered by <a href="https://ushio.cool">Ushio</a></p>
</div>
</div>
</div>
<script type="text/javascript">
/* 窄屏缩小框 */
$(function(){
if($(window).width() < 400){
document.body.style.zoom="0.8";
$('#site-landing').css('height', '150%');
}
});
</script>
<script type="text/javascript" src="js/polygonizr.min.js"></script>
<script type="text/javascript">$('#site-landing').polygonizr();</script>
<script src="./js/agree.js"></script>
<script src="./js/login.js"></script>
<script type="text/javascript" src="https://cdn.yimian.xyz/ushio-js/ushio-footer.min.js"></script>
</body>
</html>

@ -0,0 +1,63 @@
$(function(){
$(".icon-ok-sign").click(function(){
verify = $(this).hasClass('boxcol') ? 0 : 1;
$(this).toggleClass('boxcol');
ob = $('input[name=agree]');
ob.val(ob.val()==0?1:0);
ob.val(ob.val() !== verify ? verify : ob.val());
ob.val() == 0 ? $('#errormsg').removeClass('hide').addClass('show') : $('#errormsg').removeClass('show').addClass('hide');
});
//输入框输入时模拟placeholder效果
var oInput = $(".form-data input");
oInput.focus(function () {
$(this).siblings("label").hide();
});
oInput.blur(function () {
if($(this).val()==""){
$(this).siblings("label").show();
}
});
// 输入框内容变化按钮颜色发生变化
oInput.keyup(function () {
if($(this).val()!="jquery.js"){
$(".log-btn").removeClass("off")
}else{
$(".log-btn").addClass("off")
}
});
// $(".form-data").delegate(".send","click",function () {
// var oTime = $(".form-data .time"),
// oSend = $(".form-data .send"),
// num = parseInt(oTime.text()),
// oEm = $(".form-data .time em");
// $(this).hide();
// oTime.removeClass("hide");
// var timer = setInterval(function () {
// var num2 = num-=1;
// oEm.text(num2);
// if(num2==0){
// clearInterval(timer);
// oSend.text("重新发送验证码");
// oSend.show();
// oEm.text("60");
// oTime.addClass("hide");
// }
// },1000);
// });
// $(".message").click(function () {
// $(this).addClass("on");
// $(".account_number").removeClass("on");
// $(".form2").removeClass("hide");
// $(".form1").addClass("hide")
// });
// $(".account_number").click(function () {
// $(this).addClass("on");
// $(".message").removeClass("on");
// $(".form2").addClass("hide");
// $(".form1").removeClass("hide")
// })
});

4
js/jquery.js vendored

File diff suppressed because one or more lines are too long

@ -0,0 +1,312 @@
$(function(){
var tab = 'account_number';
// 选项卡切换
$(".account_number").click(function () {
$('.tel-warn').addClass('hide');
tab = $(this).attr('class').split(' ')[0];
checkBtn();
$(this).addClass("on");
$(".message").removeClass("on");
$(".form2").addClass("hide");
$(".form1").removeClass("hide");
});
// 选项卡切换
$(".message").click(function () {
$('.tel-warn').addClass('hide');
tab = $(this).attr('class').split(' ')[0];
checkBtn();
$(this).addClass("on");
$(".account_number").removeClass("on");
$(".form2").removeClass("hide");
$(".form1").addClass("hide");
});
$('#num').keyup(function(event) {
$('.tel-warn').addClass('hide');
checkBtn();
});
$('#pass').keyup(function(event) {
$('.tel-warn').addClass('hide');
checkBtn();
});
$('#veri').keyup(function(event) {
$('.tel-warn').addClass('hide');
checkBtn();
});
$('#num2').keyup(function(event) {
$('.tel-warn').addClass('hide');
checkBtn();
});
$('#veri-code').keyup(function(event) {
$('.tel-warn').addClass('hide');
checkBtn();
});
// 按钮是否可点击
function checkBtn()
{
$(".log-btn").off('click');
if (tab == 'account_number') {
var inp = $.trim($('#num').val());
var pass = $.trim($('#pass').val());
if (inp != '' && pass != '') {
if (!$('.code').hasClass('hide')) {
code = $.trim($('#veri').val());
if (code == '') {
$(".log-btn").addClass("off");
} else {
$(".log-btn").removeClass("off");
sendBtn();
}
} else {
$(".log-btn").removeClass("off");
sendBtn();
}
} else {
$(".log-btn").addClass("off");
}
} else {
var phone = $.trim($('#num2').val());
var code2 = $.trim($('#veri-code').val());
if (phone != '' && code2 != '') {
$(".log-btn").removeClass("off");
sendBtn();
} else {
$(".log-btn").addClass("off");
}
}
}
function checkAccount(username){
if (username == '') {
$('.num-err').removeClass('hide').find("em").text('请输入账户');
return false;
} else {
$('.num-err').addClass('hide');
return true;
}
}
function checkPass(pass){
if (pass == '') {
$('.pass-err').removeClass('hide').text('请输入密码');
return false;
} else {
$('.pass-err').addClass('hide');
return true;
}
}
function checkCode(code){
if (code == '') {
// $('.tel-warn').removeClass('hide').text('请输入验证码');
return false;
} else {
// $('.tel-warn').addClass('hide');
return true;
}
}
function checkPhone(phone){
var status = true;
if (phone == '') {
$('.num2-err').removeClass('hide').find("em").text('请输入手机号');
return false;
}
var param = /^1[34578]\d{9}$/;
if (!param.test(phone)) {
// globalTip({'msg':'手机号不合法,请重新输入','setTime':3});
$('.num2-err').removeClass('hide');
$('.num2-err').text('手机号不合法,请重新输入');
return false;
}
$.ajax({
url: '/checkPhone',
type: 'post',
dataType: 'json',
async: false,
data: {phone:phone,type:"login"},
success:function(data){
if (data.code == '0') {
$('.num2-err').addClass('hide');
// console.log('aa');
// return true;
} else {
$('.num2-err').removeClass('hide').text(data.msg);
// console.log('bb');
status = false;
// return false;
}
},
error:function(){
status = false;
// return false;
}
});
return status;
}
function checkPhoneCode(pCode){
if (pCode == '') {
$('.error').removeClass('hide').text('请输入验证码');
return false;
} else {
$('.error').addClass('hide');
return true;
}
}
// 登录点击事件
function sendBtn(){
if (tab == 'account_number') {
$(".log-btn").click(function(){
// var type = 'phone';
var inp = $.trim($('#num').val());
var pass = $.md5($.trim($('#pass').val()));
if (checkAccount(inp) && checkPass(pass)) {
var ldata = {userinp:inp,password:pass};
if (!$('.code').hasClass('hide')) {
code = $.trim($('#veri').val());
if (!checkCode(code)) {
return false;
}
ldata.code = code;
}
$.ajax({
url: '/dologin',
type: 'post',
dataType: 'json',
async: true,
data: ldata,
success:function(data){
if (data.code == '0') {
// globalTip({'msg':'登录成功!','setTime':3,'jump':true,'URL':'http://www.ui.cn'});
globalTip(data.msg);
} else if(data.code == '2') {
$(".log-btn").off('click').addClass("off");
$('.pass-err').removeClass('hide').find('em').text(data.msg);
$('.pass-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
$('.code').removeClass('hide');
$('.code').find('img').attr('src','/verifyCode?'+Math.random()).click(function(event) {
$(this).attr('src', '/verifyCode?'+Math.random());
});;
return false;
} else if(data.code == '3') {
$(".log-btn").off('click').addClass("off");
$('.img-err').removeClass('hide').find('em').text(data.msg);
$('.img-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
$('.code').removeClass('hide');
$('.code').find('img').attr('src','/verifyCode?'+Math.random()).click(function(event) {
$(this).attr('src', '/verifyCode?'+Math.random());
});
return false;
} else if(data.code == '1'){
$(".log-btn").off('click').addClass("off");
$('.num-err').removeClass('hide').find('em').text(data.msg);
$('.num-err').find('i').attr('class', 'icon-warn').css("color","#d9585b");
return false;
}
},
error:function(){
}
});
} else {
return false;
}
});
} else {
$(".log-btn").click(function(){
// var type = 'phone';
var phone = $.trim($('#num2').val());
var pcode = $.trim($('#veri-code').val());
if (checkPhone(phone) && checkPass(pcode)) {
$.ajax({
url: '/plogin',
type: 'post',
dataType: 'json',
async: true,
data: {phone:phone,code:pcode},
success:function(data){
if (data.code == '0') {
// globalTip({'msg':'登录成功!','setTime':3,'jump':true,'URL':'http://www.ui.cn'});
globalTip(data.msg);
} else if(data.code == '1') {
$(".log-btn").off('click').addClass("off");
$('.num2-err').removeClass('hide').text(data.msg);
return false;
} else if(data.code == '2') {
$(".log-btn").off('click').addClass("off");
$('.error').removeClass('hide').text(data.msg);
return false;
}
},
error:function(){
}
});
} else {
$(".log-btn").off('click').addClass("off");
// $('.tel-warn').removeClass('hide').text('登录失败');
return false;
}
});
}
}
// 登录的回车事件
$(window).keydown(function(event) {
if (event.keyCode == 13) {
$('.log-btn').trigger('click');
}
});
$(".form-data").delegate(".send","click",function () {
var phone = $.trim($('#num2').val());
if (checkPhone(phone)) {
$.ajax({
url: '/getcode',
type: 'post',
dataType: 'json',
async: true,
data: {phone:phone,type:"login"},
success:function(data){
if (data.code == '0') {
} else {
}
},
error:function(){
}
});
var oTime = $(".form-data .time"),
oSend = $(".form-data .send"),
num = parseInt(oTime.text()),
oEm = $(".form-data .time em");
$(this).hide();
oTime.removeClass("hide");
var timer = setInterval(function () {
var num2 = num-=1;
oEm.text(num2);
if(num2==0){
clearInterval(timer);
oSend.text("重新发送验证码");
oSend.show();
oEm.text("120");
oTime.addClass("hide");
}
},1000);
}
});
});

@ -0,0 +1,31 @@
/*
* ----------------------------------------------------------------------------
* "THE BEER-WARE LICENSE" (Revision 42):
* <Martin@Revoltera.com> wrote this file. As long as you retain this notice,
* you can do whatever you want with this stuff. If we meet some day, and you
* think this stuff is worth it, you can buy me a beer in return.
* ----------------------------------------------------------------------------
*/
(function($){$.fn.polygonizr=function(options){var defaults={restNodeMovements:1,duration:3,nodeMovementDistance:100,numberOfNodes:25,nodeDotSize:2.5,nodeEase:"easeOut",nodeFancyEntrance:!1,randomizePolygonMeshNetworkFormation:!0,specifyPolygonMeshNetworkFormation:function(i){var forEachNode={x:this.canvasWidth-((this.canvasWidth/2)+(this.canvasHeight/2)*Math.cos(i*(2*Math.PI/this.numberOfNodes)))*Math.random(),y:this.canvasHeight-(this.canvasHeight*(i/this.numberOfNodes))};return forEachNode},nodeRelations:3,animationFps:30,nodeDotColor:"240, 255, 250",nodeLineColor:"240, 255, 250",nodeFillColor:"240, 255, 250",nodeFillAlpha:0.5,nodeLineAlpha:0.5,nodeDotAlpha:1.0,nodeFillSapce:!0,nodeGlowing:!1,canvasWidth:$(this).width(),canvasHeight:$(this).height(),canvasPosition:"absolute"};var settings=$.extend({},defaults,options);return this.each(function(){var m_this=$(this);var canvasElement=document.createElement('canvas');canvasElement.width=settings.canvasWidth;canvasElement.height=settings.canvasHeight;canvasElement.style.position=settings.canvasPosition;m_this.append(canvasElement);var ctx=canvasElement.getContext('2d');var nodes=[];setupClusterNodes();startNodeAnimations();function setupClusterNodes(){for(var i=0;i<settings.numberOfNodes;i++){var currentNode={x:0,y:0};if(settings.randomizePolygonMeshNetworkFormation){currentNode.x=Math.random()*settings.canvasWidth;currentNode.y=Math.random()*settings.canvasHeight}else{currentNode=settings.specifyPolygonMeshNetworkFormation(i)}
nodes.push({currentX:currentNode.x,originX:currentNode.x,startX:currentNode.x,targetX:currentNode.x,currentY:currentNode.y,originY:currentNode.y,startY:currentNode.x,targetY:currentNode.y})}
for(var i=0;i<nodes.length;i++){var closest=[];var node=nodes[i];for(var j=0;j<nodes.length;j++){var tempNode=nodes[j];if(node!=tempNode){for(var k=0;k<settings.nodeRelations;k++){if(closest[k]==undefined){closest[k]=tempNode;break}if(getDistance(node,tempNode)<getDistance(node,closest[k])){closest[k]=tempNode;break}}}}
node.Closest=closest;setAlphaLevel(nodes[i])}}
function startNodeAnimations(){var animator=new Animator(settings.nodeEase,settings.animationFps,settings.duration,settings.restNodeMovements,settings.nodeFancyEntrance,draw);animator.start()}
const Constants={Animation:{EASING_LINEAR:"linear",EASING_EASEIN:"easeIn",EASING_EASEOUT:"easeOut",EASING_EASEINOUT:"easeInOut",EASING_ACCELERATE:"accelerateDecelerate",EASING_DESCENDING:"descendingEntrance"}};function Animator(easing,fps,duration,delay,fancyEntrance,callback){function step(timestamp){if(!m_startTime)m_startTime=timestamp;if(!m_lastFrameUpdate)m_lastFrameUpdate=timestamp;var currentFrame=Math.floor((timestamp-m_startTime)/(1000/fps));if(m_frameCount<currentFrame){m_frameCount=currentFrame;var currentDuration=timestamp-m_lastFrameUpdate;if(currentDuration<=m_duration){if(m_newTargetPossition){setNewTargetPossition();m_newTargetPossition=!1}
if(m_entranceSingleton&&fancyEntrance){setNewNodePossition(Constants.Animation.EASING_DESCENDING,currentDuration,m_duration)}else{setNewNodePossition(easing,currentDuration,m_duration)}
if(callback&&typeof(callback)==="function"){callback()}}else if(currentDuration>=(m_duration+m_delay)){m_lastFrameUpdate=timestamp;m_newTargetPossition=!0;m_entranceSingleton=!1}}
m_requestId=m_requestAnimationFrame(step)}
this.isRunning=!1;this.start=function(){if(!this.isRunning){this.isRunning=!0;m_duration=duration*1000;m_delay=delay*1000;m_requestId=m_requestAnimationFrame(step)}};this.pause=function(){if(this.isRunning){m_cancleAnimationFrame(m_requestId);this.isRunning=!1;m_startTime=null;m_frameCount=-1}};var m_requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;var m_cancleAnimationFrame=window.cancelAnimationFrame||window.mozCancelRequestAnimationFrame||window.webkitCancelRequestAnimationFrame||window.oCancelRequestAnimationFrame||window.msCancelRequestAnimationFrame;var m_startTime=null;var m_frameCount=-1
var m_requestId=null;var m_lastFrameUpdate=null;var m_newTargetPossition=!0;var m_entranceSingleton=!0;var m_duration;var m_delay}
function getEasing(easing,currentTime,startPossition,targetPossition,endTime){switch(easing){case Constants.Animation.EASING_LINEAR:return(targetPossition-startPossition)*(currentTime/endTime)+startPossition;break;case Constants.Animation.EASING_EASEIN:currentTime/=endTime;return(targetPossition-startPossition)*Math.pow(currentTime,2)+startPossition;case Constants.Animation.EASING_EASEOUT:currentTime/=endTime;return-(targetPossition-startPossition)*currentTime*(currentTime-2)+startPossition;case Constants.Animation.EASING_EASEINOUT:currentTime/=(endTime/2);if(currentTime<1)return(targetPossition-startPossition)/2*Math.pow(currentTime,2)+startPossition;return-(targetPossition-startPossition)/2*((currentTime-1)*((currentTime-1)-2)-1)+startPossition;break;case Constants.Animation.EASING_ACCELERATE:currentTime/=(endTime/2);if(currentTime<1)return(targetPossition-startPossition)/2*Math.pow(currentTime,3)+startPossition;return(targetPossition-startPossition)/2*(Math.pow(currentTime-2,3)+2)+startPossition;break;case Constants.Animation.EASING_DESCENDING:currentTime/=(endTime/2);if(currentTime<1)return(targetPossition-startPossition)/Math.pow(currentTime,3)+startPossition;return(targetPossition-startPossition)/(Math.pow(currentTime-2,3)+2)+startPossition;break;default:return getEasing(Constants.Animation.EASING_LINEAR,currentTime,startPossition,targetPossition,endTime)}}
function setNewNodePossition(easing,currentTime,endTime){for(var i in nodes){nodes[i].currentX=getEasing(easing,currentTime,nodes[i].startX,nodes[i].targetX,endTime);nodes[i].currentY=getEasing(easing,currentTime,nodes[i].startY,nodes[i].targetY,endTime)}}
function setNewTargetPossition(){for(var i in nodes){nodes[i].targetX=nodes[i].originX+(Math.random()<0.5?-Math.random():Math.random())*settings.nodeMovementDistance;nodes[i].targetY=nodes[i].originY+(Math.random()<0.5?-Math.random():Math.random())*settings.nodeMovementDistance;nodes[i].startX=nodes[i].currentX;nodes[i].startY=nodes[i].currentY}}
function setAlphaLevel(node){var screenDistance=Math.sqrt(Math.pow(settings.canvasWidth,2)+Math.pow(settings.canvasHeight,2));var nodeDistance=getDistance(node,node.Closest[0]);for(var i in node.Closest){nodeDistance+=getDistance(node.Closest[i],node.Closest[(i+1)%node.Closest.length])}
var generalAlpha=1-(nodeDistance/screenDistance);node.lineAlpha=generalAlpha*settings.nodeLineAlpha;node.dotAlpha=generalAlpha*settings.nodeDotAlpha;if(generalAlpha>0.85){node.fillAlpha=generalAlpha*settings.nodeFillAlpha;node.lineAlpha=settings.nodeLineAlpha;node.dotAlpha=settings.nodeDotAlpha}else if(generalAlpha<0.8&&generalAlpha>0.7){node.fillAlpha=0.5*generalAlpha*settings.nodeFillAlpha;node.lineAlpha=settings.nodeLineAlpha;node.dotAlpha=settings.nodeDotAlpha}else if(generalAlpha<0.7&&generalAlpha>0.4){node.fillAlpha=0.2*generalAlpha*settings.nodeFillAlpha}else{node.fillAlpha=0}}
function draw(){ctx.clearRect(0,0,settings.canvasWidth,settings.canvasHeight);for(var i in nodes){drawLines(nodes[i]);drawCircle(nodes[i])}}
function drawLines(node){if(!node.lineAlpha>0&&!node.fillAlpha>0)return;for(var i in node.Closest){if(node.lineAlpha>0){ctx.beginPath();ctx.moveTo(node.currentX,node.currentY);ctx.lineTo(node.Closest[i].currentX,node.Closest[i].currentY);ctx.strokeStyle='rgba('+settings.nodeLineColor+','+node.lineAlpha+')';ctx.stroke()}
if(settings.nodeFillSapce&&node.fillAlpha>0){ctx.beginPath();ctx.moveTo(node.currentX,node.currentY);ctx.lineTo(node.Closest[i].currentX,node.Closest[i].currentY);ctx.lineTo(node.Closest[(i+1)%node.Closest.length].currentX,node.Closest[(i+1)%node.Closest.length].currentY);ctx.fillStyle='rgba('+settings.nodeFillColor+','+node.fillAlpha+')';ctx.fill()}}}
function drawCircle(node){if(!node.dotAlpha>0)return;ctx.beginPath();ctx.arc(node.currentX,node.currentY,settings.nodeDotSize,0,Math.PI*2,!1);ctx.fillStyle='rgba('+settings.nodeDotColor+', '+node.dotAlpha+')';if(settings.nodeGlowing){ctx.shadowBlur=10;ctx.shadowColor='rgba('+settings.nodeDotColor+', '+node.dotAlpha+')'}
ctx.fill()}
function getDistance(firstNode,secondNode){return Math.sqrt(Math.pow(firstNode.currentX-secondNode.currentX,2)+Math.pow(firstNode.currentY-secondNode.currentY,2))}})}}(jQuery))

@ -0,0 +1,67 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>用户注册</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta name="Keywords" content="网站关键词">
<meta name="Description" content="网站介绍">
<link rel="stylesheet" href="./css/base.css">
<link rel="stylesheet" href="./css/iconfont.css">
<link rel="stylesheet" href="./css/reg.css">
</head>
<body>
<div id="ajax-hook"></div>
<div class="wrap">
<div class="wpn">
<div class="form-data pos">
<a href=""><img src="./img/logo.png" class="head-logo"></a>
<!--<p class="tel-warn hide"><i class="icon-warn"></i></p>-->
<form>
<p class="p-input pos">
<label for="tel">手机号</label>
<input type="number" id="tel" autocomplete="off">
<span class="tel-warn tel-err hide"><em></em><i class="icon-warn"></i></span>
</p>
<p class="p-input pos" id="sendcode">
<label for="veri-code">输入验证码</label>
<input type="number" id="veri-code">
<a href="javascript:;" class="send">发送验证码</a>
<span class="time hide"><em>120</em>s</span>
<span class="error hide"><em></em><i class="icon-warn" style="margin-left: 5px"></i></span>
</p>
<p class="p-input pos hide" id="pwd">
<label for="passport">输入密码</label>
<input type="password" style="display: none"/>
<input type="password" id="passport">
<span class="tel-warn pwd-err hide"><em></em><i class="icon-warn" style="margin-left: 5px"></i></span>
</p>
<p class="p-input pos hide" id="confirmpwd">
<label for="passport2">确认密码</label>
<input type="password" style="position:absolute;top:-998px"/>
<input type="password" id="passport2">
<span class="tel-warn confirmpwd-err hide"><em></em><i class="icon-warn" style="margin-left: 5px"></i></span>
</p>
</form>
<div class="reg_checkboxline pos">
<span class="z"><i class="icon-ok-sign boxcol" nullmsg="请同意!"></i></span>
<input type="hidden" name="agree" value="1">
<div class="Validform_checktip"></div>
<p>我已阅读并接受 <a href="#" target="_brack">《XXXX协议说明》</a></p>
</div>
<button class="lang-btn">注册</button>
<div class="bottom-info">已有账号,<a href="./login.html">马上登录</a></div>
<div class="third-party">
<a href="#" class="log-qq icon-qq-round"></a>
<a href="#" class="log-qq icon-weixin"></a>
<a href="#" class="log-qq icon-sina1"></a>
</div>
<p class="right">Powered by © 2018</p>
</div>
</div>
</div>
<script src="./js/jquery.js"></script>
<script src="./js/agree.js"></script>
<script src="./js/reg.js"></script>
</body>
</html>
Loading…
Cancel
Save