在项目开发中,如果我们使用javascript自带的提示对话框,感觉不怎么美观,所以我们通常都是自己定义一些对话框,这里我实现点击按钮就弹窗一个登录的窗口,点击该窗口并可以实现拖拽功能,太多文字的东西说不清楚,直接用代码说话。 这里我将HTML、CSS、Jquery代码分别贴出来 HTML部分: 复制代码 代码如下: 弹窗 登录腾虎通行证 × 请输入用户名 请输入密码 下次自动登录 忘记密码? 立即注册 可以使用一下方式登录 QQ MSN CSS部分代码: 复制代码 代码如下: <BR>*{margin:0px;padding:0px;color:#555555;} <BR>.alter{width:50px;height:30px;margin:10px} <BR>.box{ <BR>width:100%; <BR>height:100%; <BR>position:fixed; <BR>top:0; <BR>left:0; <BR>background: -moz-linear-gradient(rgba(11,11,11,0.5), rgba(11,11,11,0.1)) repeat-x rgba(11,11,11,0.1); <BR>background:-webkit-gradient(linear, 0% 0%, 0% 100%, from(rgba(11,11,11,0.1)), to(rgba(11,11,11,0.1))) repeat-x rgba(11,11,11,0.1); <BR>z-index:100000; <BR>display:none; <BR>} <BR>.box_content{ <BR>height:420px; <BR>width:350px; <BR>background:white; <BR>position:fixed; <BR>top:0; <BR>left:0; <BR>} <BR>.box_content .title{ <BR>height:45px; <BR>width:100%; <BR>background:#EEEEEE; <BR>line-height:45px; <BR>overflow:hidden; <BR>} <BR>.title:hover{cursor: move;} <BR>.title h3{float:left;margin-left:20px;} <BR>.title h2{float:right;margin-right:15px;color:#999999} <BR>.title h2:hover{color:#444444;cursor:pointer} <br><br>.box_content .content,.other{margin:20px 20px 10px 20px;overflow:hidden;font:normal 14px "宋体";} <BR>.content table{width:99%;} <BR>.content .inputstyle,.prompt{height:35px;width:96.5%;padding-left:10px;} <BR>.content .inputstyle{font:bold 18px/35px "宋体";} <BR>.content a{ <BR>text-decoration: none; <BR>color:#1B66C7 <BR>} <BR>.content a:hover{text-decoration: underline;} <BR>.content table .login{ <BR>height:45px;width:101%; <BR>border:none; <BR>background:#4490F7; <BR>color:#FFFFFF; <BR>font:bold 17px "宋体"; <BR>border-radius:4px; <BR>} <BR>.content table .login:hover{ <BR>background:#559BFC; <BR>} <BR>.content .prompt{ <BR>color:#999999; <BR>position:absolute; <BR>line-height:38px; <BR>} <br><br>.box_content .other{font:normal 14px "宋体";} <BR>.other ul{ <BR>list-style:none; <BR>margin-top:15px; <BR>} <BR>.other ul li{ <BR>float:left; <BR>height:30px; <BR>width:30px; <BR>margin-right:15px; <BR>border-radius:20px; <BR>background:#1B66C7; <BR>color:white; <BR>text-align:center; <BR>line-height:30px <BR>} <BR> Jquery代码: 复制代码 代码如下: <BR>$(document).ready(function(){ <BR>BoxInit.init(); <BR>}); <br><br>var BoxInit={ <BR>wWidth:undefined,//浏览器宽度 <BR>wHeight:undefined,//浏览器高度 <BR>show:undefined,//显示按钮 <BR>box:undefined,//弹窗遮盖属性 <BR>boxContent:undefined,//弹窗属性 <BR>closeBox:undefined,//关闭按钮属性 <BR>loginBtn:undefined,//登录按钮属性 <BR>init:function(){ <BR>var self=this; <BR>//获取控件对象 <BR>self.show=$("#show"); <BR>self.box=$(".box"); <BR>self.boxContent=$(".box_content"); <BR>self.closeBox=$("#close"); <BR>self.loginBtn=$("#login"); <BR>//获取浏览器可视化的宽高 <BR>self.wWidth=$(window).width(); <BR>self.wHeight=$(window).height(); <BR>//绑定显示按钮点击事件 <BR>self.show.click(function(){self.showBtn()}); <BR>//绑定关闭按钮事件 <BR>self.closeBox.click(function(){self.closes()}); <BR>//绑定登录按钮 <BR>self.loginBtn.click(function(){self.login()}); <BR>//DIV拖拽 <BR>self.dragDrop(); <BR>//调用控制提示信息 <BR>self.controlPromptInfo(); <BR>}, <BR>/** <BR>*显示按钮 <BR>*/ <BR>showBtn:function(){ <BR>var self=this; <BR>self.box.animate({"width":self.wWidth,"height":self.wHeight},function(){ <BR>//设置弹窗的位置 <BR>self.boxContent.animate({ <BR>"left":(self.wWidth-self.boxContent.width())/2 <BR>},function(){ <BR>$(this).animate({"top":(self.wHeight-self.boxContent.height())/2}); <BR>}); <BR>}); <BR>}, <BR>/** <BR>*关闭按钮 <BR>*/ <BR>closes:function(){ <BR>var self=this; <BR>self.boxContent.animate({ <BR>"top":0 <BR>},function(){ <BR>$(this).animate({"left":-(self.wWidth-self.boxContent.width())/2},function(){ <BR>self.box.animate({"width":-self.wWidth,"height":-self.wHeight}); <BR>}); <BR>}); <BR>}, <BR>/** <BR>*登录按钮 <BR>*/ <BR>login:function(){ <BR>var self=this; <BR>self.boxContent.animate({ <BR>"top":0 <BR>},function(){ <BR>$(this).animate({"left":-(self.wWidth-self.boxContent.width())/2},function(){ <BR>self.box.animate({"width":-self.wWidth,"height":-self.wHeight}); <BR>}); <br><br>}); <BR>}, <BR>/** <BR>*拖拽弹窗 <BR>*/ <BR>dragDrop:function(){ <BR>var self=this; <BR>var move=false;//标识是否移动元素 <BR>var offsetX=0;//弹窗到浏览器left的宽度 <BR>var offsetY=0;//弹出到浏览器top的宽度 <BR>var title=$(".title"); <BR>//鼠标按下事件 <BR>title.mousedown(function(){ <BR>move=true;//当鼠标按在该div上的时间将move属性设置为true <BR>offsetX=event.offsetX;//获取鼠标在当前窗口的相对偏移位置的Left值并赋值给offsetX <BR>offsetY=event.offsetY;//获取鼠标在当前窗口的相对偏移位置的Top值并赋值给offsetY <BR>title.css({"cursor":"move"}); <BR>}).mouseup(function(){ <BR>//当鼠标松开的时候将move属性摄hi为false <BR>move=false; <BR>}); <BR>$(document).mousemove(function(){ <BR>if(!move){//如果move属性不为true,就不执行下面的代码 <BR>return; <BR>} <BR>//move为true的时候执行下面代码 <BR>var x = event.clientX-offsetX; //event.clientX得到鼠标相对于客户端正文区域的偏移,然后减去offsetX即得到当前推拽元素相对于当前窗口的X值(减去鼠标刚开始拖动的时候在当前窗口的偏移X) <BR>var y = event.clientY-offsetY; //event.clientY得到鼠标相对于客户端正文区域的偏移,然后减去offsetX即得到当前推拽元素相对于当前窗口的Y值(减去鼠标刚开始拖动的时候在当前窗口的偏移Y) <BR>if(!(x<0||y<0||x>(self.wWidth-self.boxContent.width())||y>(self.wHeight-self.boxContent.height()))){ <BR>self.boxContent.css({"left":x,"top":y,"cursor":"move"}); <BR>} <BR>}); <BR>}, <BR>/** <BR>*控制提示信息 <BR>*/ <BR>controlPromptInfo:function(){ <BR>//遍历提示信息,并点击 <BR>$("p[class*=prompt]").each(function(){ <BR>var pro=$(this); <BR>pro.click(function(){ <BR>//点击提示信息自身隐藏,文本框获取焦点 <BR>pro.hide().siblings("input").focus(); <BR>}); <BR>}); <BR>//遍历文本框 <BR>$("input[class*=ins]").each(function(){ <BR>var input=$(this); <BR>//文本框失去焦点 <BR>input.blur(function(){ <BR>//如果文本框值为空 <BR>if(input.val()==""){ <BR>//显示提示信息 <BR>input.siblings(".prompt").show(); <BR>} <BR>}).keyup(function(){//按键抬起的时候 <BR>if(input.val()==""){//如果文本框值为空 <BR>//文本框失去焦点显示提示信息 <BR>input.blur().siblings(".prompt").show(); <BR>}else{ <BR>//提示信息隐藏 <BR>input.siblings(".prompt").hide(); <BR>} <BR>}); <BR>}); <BR>} <BR>} <BR> 整个功能的代码都在这里了