基于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 相关文章推荐
ExtJS中文乱码之GBK格式编码解决方案及代码
Jan 20 Javascript
JavaScript中的关键字&quot;VAR&quot;使用详解 分享
Jul 31 Javascript
JavaScript 语言基础知识点总结(思维导图)
Nov 10 Javascript
浅谈Javascript 执行顺序
Dec 18 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
jQuery中:only-child选择器用法实例
Jan 03 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
Nov 05 Javascript
AngularJS中isolate scope的用法分析
Nov 22 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
vue单页面应用打开新窗口显示跳转页面的实例
Sep 21 Javascript
vue组件的路由高亮问题解决方法
May 11 Vue.js
8个JS的reduce使用实例和reduce操作方式
Oct 05 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 发送带附件邮件示例
2014/01/23 PHP
php HTML无刷新提交表单
2016/04/05 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
javascript中创建对象的几种方法总结
2013/11/01 Javascript
Node.js和PHP根据ip获取地理位置的方法
2014/03/14 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
Javasript设计模式之链式调用详解
2018/04/26 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
Python解析树及树的遍历
2016/02/03 Python
Python提取Linux内核源代码的目录结构实现方法
2016/06/24 Python
python操作 hbase 数据的方法
2016/12/18 Python
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
解读python如何实现决策树算法
2018/10/11 Python
python得到单词模式的示例
2018/10/15 Python
Mac下Anaconda的安装和使用教程
2018/11/29 Python
python按照多个条件排序的方法
2019/02/08 Python
python中如何使用分步式进程计算详解
2019/03/22 Python
详解pandas中MultiIndex和对象实际索引不一致问题
2019/07/23 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
Python语法之精妙的十个知识点(装B语法)
2020/01/18 Python
html5 视频播放解决方案
2016/11/06 HTML / CSS
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
银行财务部实习生的自我鉴定
2013/11/27 职场文书
打架检讨书100字
2014/01/19 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
12岁生日演讲稿
2014/05/14 职场文书
2014年中秋节活动总结
2014/08/29 职场文书
2015年事业单位工作总结
2015/04/27 职场文书
MySQL表的增删改查基础教程
2021/04/07 MySQL
详解Python常用的魔法方法
2021/06/03 Python