忧郁之子
可拖拽和带二维码的登录窗口设计效果
这是一款非常实用的登录窗口设计效果。该登录窗口通过点击按钮或超链接弹出,它可以自由的进行拖拽。在登陆框中带有二维码,可以进行扫描登录,即实用又时尚。
使用方法
在页面中引入jquery和样式文件style.css。
<script src="path/to/jquery.min.js"></script>
<link href="path/to/style.css" rel="stylesheet">
HTML结构
该登录窗口的基本HTML结构如下:
<div id="gray"></div>
<div class="popup" id="popup">
<div class="top_nav" id='top_nav'>
<div align="center">
<span>登录账号</span>
<a class="guanbi"></a>
</div>
</div>
<div class="min">
<div class="tc_login">
<div class="left">
<h4 align="center">手机扫描</h4>
<div align="center"><img src="images/erweima.jpg" width="150" height="150" /></div>
<dd>
<div align="center">扫描二维码登录</div>
</dd>
</div>
<div class="right">
<form method="POST" name="form_login" target="_top">
<div align="center">
<a href="">短信快捷登录</a>
<i class="icon-mobile-phone"></i>
<input type="text" name="name" id="name" required="required" placeholder="用户名" autocomplete="off" class="input_yh">
<input type="password" name="pass" id="pass" required="required" placeholder="密码" autocomplete="off" class="input_mm">
</div>
<dd>
<div align="center"><a href="">遇到登录问题</a></div>
</dd>
<div align="center">
<input type="submit" class="button" title="Sign In" value="登录">
</div>
</form>
<dd>
<div align="center"><a href="#" target="_blank">立即注册</a></div>
</dd>
<hr align="center" />
<div align="center">期待更多功能 </div>
</div>
</div>
</div>
</div>
可以通过一个按钮或超链接来打开登录窗口。
<button class="tc">点击登录</button>
JavaScript
在页面DOM元素加载完毕之后,通过下面的jquery代码来完成登录窗口的显示、隐藏和拖拽功能。
//点击登录class为tc 显示
$(".tc").click(function(){
$("#gray").show();
$("#popup").show();//查找ID为popup的DIV show()显示#gray
tc_center();
});
//点击关闭按钮
$("a.guanbi").click(function(){
$("#gray").hide();
$("#popup").hide();//查找ID为popup的DIV hide()隐藏
})
//窗口水平居中
$(window).resize(function(){
tc_center();
});
function tc_center(){
var _top=($(window).height()-$(".popup").height())/2;
var _left=($(window).width()-$(".popup").width())/2;
$(".popup").css({top:_top,left:_left});
}
$(document).ready(function(){
$(".top_nav").mousedown(function(e){
$(this).css("cursor","move");//改变鼠标指针的形状
var offset = $(this).offset();//DIV在页面的位置
var x = e.pageX - offset.left;//获得鼠标指针离DIV元素左边界的距离
var y = e.pageY - offset.top;//获得鼠标指针离DIV元素上边界的距离
//绑定鼠标的移动事件,因为光标在DIV元素外面也要有效果,所以要用doucment的事件,而不用DIV元素的事件
$(document).bind("mousemove",function(ev){
$(".popup").stop();//加上这个之后
var _x = ev.pageX - x;//获得X轴方向移动的值
var _y = ev.pageY - y;//获得Y轴方向移动的值
$(".popup").animate({left:_x+"px",top:_y+"px"},10);
});
});
$(document).mouseup(function() {
$(".popup").css("cursor","default");
$(this).unbind("mousemove");
});
})
其中style.css代码如下:
@charset "utf-8";
*{padding:0px;margin:0px;}
body{min-width:980px;background-color:#fafafa;}
body,ul,h1{margin:0px;}
ul{list-style-type:none;}
img{display:block;}/*变成块集元素*/
a{text-decoration:none;}
/*--弹窗样式--*/
#gray{width:100%;height:100%;background:rgba(0,0,0,0.3);position:fixed;top:0px;display:none;z-index:99;}
.popup{
width:532px;
height:auto;
background-color:#fff;
position:absolute;
z-index:100;
border:1px solid #ebeaea;
left:400px;
top:96px;
display:none;
}
.popup .top_nav{
width:532px;
height:46px;
background-image: url(../images/popup_top_bj.jpg);
border-bottom:1px solid #ebeaea;
position:relative;
cursor:move;
}
.popup .top_nav i{width:35px;height:35px;background:url(../images/sucai_tubiao.png) -314px -5px;position:absolute;top:6px;left:8px;display:block; }
.popup .top_nav span{font:18px/18px 'microsoft yahei';color:#707070;display:block;position:absolute;top:13px;left:50px;}
.popup .top_nav a.guanbi { background:url(../images/popup_guanbi.png) repeat 0px 0px; width:35px; height: 35px; display: block; position:absolute;top:8px;right:10px;cursor:pointer;}
.popup .top_nav a.guanbi span { display: none;}
.popup .top_nav a.guanbi:hover { background: url(../images/popup_guanbi.png) repeat 0px -35px; }
.popup .min{width:532px;height:auto;padding:10px;}
.tc_login{width:510px;height:380px;background-color:#fff;}
.tc_login .left{width:200px;height:380px;background-color:;float:left;}
.tc_login .right{width:290px;height:380px;background-color:;float:right;padding-right:10px;}
.tc_login .left h4{width:200px;height:20px;margin:20px 0 20px 0;font-size:15px;color:#666;text-align:center;}
.tc_login .left img{width:150px;margin:0 auto;display:block;border:1px solid #E3E3E3;padding:4px;}
.tc_login .left dd{width:200px;height:30px;font:13px/18px 'microsoft yahei';color:#666;margin:20px 0 10px 0;text-align:center;display:block;}
.tc_login .right i{font-size:20px;color:#090;float:right;margin:15px 0 0px 0;}
.tc_login .right a{font:13px/18px 'microsoft yahei';color:#666;float:right;margin:16px 0 0px 6px;}
.tc_login .right a:hover{color:#06F;text-decoration: underline;}
.tc_login .right input{
border: 1px solid #ccc;
border-radius: 2px;
color: #000;
font-family: 'Open Sans', sans-serif;
font-size: 1em;
height: 40px;
padding:0 0 0 34px;
margin:10px 0px 0px 10px;
transition: background 0.3s ease-in-out;
width: 220px;
float:right;
}
.tc_login .right input:focus {
outline: none;
border-color: #019A0D;
box-shadow: 0 0 0px #019A0D;
}
.tc_login .right .input_yh{background:url(../images/tc_login_yonghu.jpg) no-repeat left top;}
.tc_login .right .input_mm{background:url(../images/tc_login_mima.jpg) no-repeat left top;}
.tc_login .right .input_yh:focus{background:url(../images/tc_login_yonghu2.jpg) no-repeat left top;}
.tc_login .right .input_mm:focus{background:url(../images/tc_login_mima2.jpg) no-repeat left top;}
.tc_login .right .button{
-webkit-appearance: none;
background:#36a803;
border: none;
border-radius: 2px;
color: #fff;
cursor: pointer;
height: 50px;
font-family: 'Open Sans', sans-serif;
font-size: 1.2em;
letter-spacing: 0.05em;
text-align: center;
text-transform: uppercase;
transition: background 0.3s ease-in-out;
width: 255px;
padding:0 50px 0 50px;
font-weight: bold;
}
.tc_login .right .button:hover {
background: #019A0D;
}
.tc_login .right dd{width:100%;height:30px;}
.tc_login .right dd a{font:12px/18px 'microsoft yahei';color:#06F;}
.tc_login .right dd a:hover{font:13px/18px 'microsoft yahei';color:#06F;text-decoration: underline;}
.tc_login .right hr{height:1px;border:none;border-top:1px dashed #E4E4E4;clear:both;margin:240px 0 5px 0px;}
完整代码下载(含素材):