基于jQuery的弹出框插件


Posted in Javascript onMarch 18, 2012

html如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<script type="text/javascript" src="jquery-1.7.min.js"></script> 
<script type="text/javascript" src="jquery-1.0.popwin.js"></script> 
<script type="text/javascript"> 
$(function() { 
$("#btn01").popwin({ 
element: "#box01", 
title: "请填写以下您的基本信息" 
}); 
$("#btn02").popwin({ 
element: "#box02", 
title: "请登陆" 
}); 
}) 
</script> 
<title>DEMO</title> 
</head> 
<body> 
<div id="box01"> 
<form action="" method="post" onsubmit="return check();"> 
姓名: 
<input type="text" size="30" name="username" id="username" onblur="return check();" value="" /><span id="nameErr"></span> 
<br /> 
<br /> 
密码: 
<input type="password" size="30" name="password" onblur="return check();" id="password" value="" /><span id="passwordErr"></span> 
<br /> 
<br /> 
邮箱: 
<input type="text" size="30" id="email" value="" onblur="return check();" /><span id="emailErr"></span> 
<br /> 
<br /> 
<input type="submit" value="确定" /> 
<input type="reset" value="取消" /> 
</form> 
</div> 
<div id="box02"> 
<form action="" method="post"> 
姓名: 
<input type="text" size="30" value="" /> 
<br /> 
<br /> 
密码: 
<input type="password" size="30" value="" /> 
<br /> 
<br /> 
<input type="submit" value="确定" /> 
<input type="reset" value="取消" /> 
</form> 
</div> 
<button value="注册" id="btn01">注册</button> 
<button value="登陆" id="btn02">登陆</button> 
</body> 
</html>

js插件如下:
/* 
* jquery.popwin.js 1.0 
* Copyright (c) gaoyubao 
* Date: 2012-01-12 
* 1.点击按钮,可以弹出你想弹出的内容,只要设置一下id,或者class 
2.浏览器窗口缩小的时候,弹出框始终是居中的 
3.按ESC间,可以关闭窗口 
*/ 
(function($) { 
var css='<style type="text/css">* {margin: 0;padding: 0;}#bg{background-color: #000; position: absolute; left:0; top:0;opacity: 0.5;filter:alpha(opacity=50);} #flagBox {position: absolute;border: 1px solid #000;background-color: #fff;z-index:2000;}#titleBox {padding: 5px;background-color:#fc0; overflow:hidden;} #titleBox p {font-weight: bold;} #titleBox a {float: right;} #htmlCode {padding: 10px;} span {font-size: 12px; color: #f00; margin-left: 10px;}</style>'; 
$("head").append(css); 
$.fn.popwin= function(options) { 
var settings={ 
element: "element", //哪一个弹出框,可以是id,或者是class 
width: 400, 
height: 200, 
title: "title" //弹出框的title 
} 
var s=$.extend(settings,options); 
var htmlCode=$(s.element).html(); 
$(s.element).remove(); 
$.a={ 
//设置背景的宽和高 
setBg: function() { 
var bh=$("body").height(),wh=$(window).height(),ww=$(window).width(); 
if(bh>wh) { 
wh=bh; 
} 
$("#bg").css({ 
width: ww, 
height: wh 
}); 
}, 
//设置弹出框居中 
setFlag: function() { 
var l=(document.documentElement.clientWidth-s.width)/2+"px", 
t=(document.documentElement.clientHeight-s.height)/2+"px"; 
$("#flagBox").css({ 
width: s.width, 
height: s.height, 
left: l, 
top: t 
}); 
}, 
//弹出框关闭 
setClose: function() { 
$("#container").remove(); 
} 
}; 
var html='<div id="container"><div id="bg"></div><div id="flagBox"><div id="titleBox"><a href="javascript:void(0)">close</a><p>'+s.title+'</p></div><div id="htmlCode">'+htmlCode+'</div></div></div>'; 
$(window).resize(function() {//调解窗口的大小 
$.a.setFlag(); 
}); 
return this.each(function() { 
$(this).bind("click",function(){ 
$("body").append(html); 
$("#titleBox a").click(function() { 
$.a.setClose(); 
}); 
$.a.setBg(); 
$.a.setFlag(); 
}); 
$(document).keydown(function(event) { 
if(event.which=="27") { 
$.a.setClose(); 
} 
}); 
}); 
}; 
})(jQuery) 
function isEmail(str) { 
var reg = /^([a-zA-Z0-9_-])+@+([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])/; 
if(reg.exec(str)) { 
return false; 
}else { 
return true; 
} 
} 
function check() { 
var flag=true; 
$("#nameErr").html(''); 
$("#passwordErr").html(''); 
$("#emailErr").html(''); 
var username=$("#username").val(); 
var password=$("#password").val(); 
var email=$("#email").val(); 
if(username=="" || username==null) { 
$("#nameErr").html("姓名不能为空"); 
flag=false; 
} 
if(password=="") { 
$("#passwordErr").html("密码不能为空"); 
flag=false; 
} 
if(email=="") { 
$("#emailErr").html("邮箱不能为空"); 
flag=false; 
}else if(isEmail(email)) { 
$("#emailErr").html("邮箱格式错误"); 
flag=false; 
} 
return flag; 
}
Javascript 相关文章推荐
js获取变量
Aug 24 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
Sep 03 Javascript
jQuery总体架构的理解分析
Mar 07 Javascript
javascript椭圆旋转相册实现代码
Jan 16 Javascript
文本域光标操作的jQuery扩展分享
Mar 10 Javascript
使用jQuery操作HTML的table表格的实例解析
Mar 13 Javascript
微信小程序-getUserInfo回调的实例详解
Oct 27 Javascript
探索Vue高阶组件的使用
Jan 08 Javascript
Element ui 下拉多选时新增一个选择所有的选项
Aug 21 Javascript
微信小程序实现同时上传多张图片
Feb 03 Javascript
VueX模块的具体使用(小白教程)
Jun 05 Javascript
JavaScript中layim之整合右键菜单的示例代码
Feb 06 Javascript
js性能优化 如何更快速加载你的JavaScript页面
Mar 17 #Javascript
Jquery命名冲突解决的五种方案分享
Mar 16 #Javascript
让人期待的2011年度最佳 jQuery 插件分享
Mar 16 #Javascript
JavaScript异步调用定时方法并停止该方法实现代码
Mar 16 #Javascript
使用Jquery Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 #Javascript
jquery $.ajax相关用法分享
Mar 16 #Javascript
灵活应用js调试技巧解决样式问题的步骤分享
Mar 15 #Javascript
You might like
PHP 伪静态隐藏传递参数名的四种方法
2010/02/22 PHP
PHP多个版本的分析解释
2011/07/21 PHP
php foreach循环中使用引用的问题
2013/11/06 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP 前加at符合@的作用解析
2015/07/31 PHP
HTML中嵌入PHP的简单方法
2016/02/16 PHP
PHP调试的强悍利器之PHPDBG
2016/02/22 PHP
PHP中串行化用法示例
2016/11/16 PHP
Yii CDBCriteria常用方法实例小结
2017/01/19 PHP
Yii2实现跨mysql数据库关联查询排序功能代码
2017/02/10 PHP
php生出随机字符串
2017/07/06 PHP
PHP7 新增功能
2021/03/09 PHP
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
原生js 秒表实现代码
2012/07/24 Javascript
原生js实现查找/添加/删除/指定元素的class
2013/04/12 Javascript
javascript常见操作汇总
2014/09/03 Javascript
简述jQuery ajax的执行顺序
2016/01/05 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
有关jquery与DOM节点操作方法和属性记录
2016/04/15 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
JS for循环中i++ 和 ++i的区别介绍
2016/07/20 Javascript
微信小程序 数据遍历的实现
2017/04/05 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
详解JavaScript的内存空间、赋值和深浅拷贝
2019/04/17 Javascript
微信小程序按顺序同步执行的两种方式
2019/12/20 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
python爬取酷狗音乐排行榜
2019/02/20 Python
纯CSS3实现图片无间断轮播效果
2016/08/25 HTML / CSS
Homestay中文官网:全球寄宿家庭
2018/10/18 全球购物
医院护理人员的自我评价分享
2013/10/04 职场文书
金融管理专业毕业生求职信
2014/03/12 职场文书
《小鹰学飞》教学反思
2014/04/23 职场文书
2014审计局领导班子民主生活会对照检查材料思想汇报
2014/09/20 职场文书
群众路线查摆问题整改措施
2014/10/10 职场文书
优秀团队申报材料
2014/12/26 职场文书