基于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 相关文章推荐
浅析showModalDialog数据缓存问题(用禁止浏览器缓存解决)
Jul 09 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
JavaScript自定义文本框光标
Mar 05 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
Oct 27 Javascript
React Router v4 入坑指南(小结)
Apr 08 Javascript
Element-UI踩坑之Pagination组件的使用
Oct 29 Javascript
微信小程序车牌号码模拟键盘输入功能的实现代码
Nov 11 Javascript
vue router导航守卫(router.beforeEach())的使用详解
Apr 19 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
一个PHP并发访问实例代码
2012/09/06 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
laravel config文件配置全局变量的例子
2019/10/13 PHP
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
jQuery插件expander实现图片翻转特效
2015/05/21 Javascript
移动Web中图片自适应的两种JavaScript解决方法
2015/06/18 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
2016/06/17 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
js数字计算 误差问题的快速解决方法
2017/02/28 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
node中的session的具体使用
2018/09/14 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
2020/06/11 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
深入解析Python中的list列表及其切片和迭代操作
2016/03/13 Python
python opencv 读取本地视频文件 修改ffmpeg的方法
2019/01/26 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
详解Python中的测试工具
2019/06/09 Python
Python 继承,重写,super()调用父类方法操作示例
2019/09/29 Python
联想新加坡官方网站:Lenovo Singapore
2017/10/24 全球购物
兰蔻法国官方网站:Lancôme法国
2020/02/22 全球购物
2014年乡镇安全生产工作总结
2014/12/02 职场文书
父亲节感言
2015/08/03 职场文书
创业计划书之韩国烧烤店
2019/09/19 职场文书
话题作文之成长
2019/12/09 职场文书
基于flask实现五子棋小游戏
2021/05/25 Python