源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

[JavaScript] 基于jQuery的弹出框插件

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2012-3-18 12:47:16 | 显示全部楼层 |阅读模式
有时候在做项目时,会遇到点击按钮或者文字是,弹出一个对话框,为了方便,自己就动手写了一个这样的一个插件,方便以后使用。 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;
}
回复

使用道具 举报

1

主题

2万

回帖

155

积分

注册会员

Rank: 2

积分
155
发表于 2022-8-13 16:06:12 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

55

积分

注册会员

Rank: 2

积分
55
发表于 2022-9-9 16:33:13 | 显示全部楼层
iiguuubhuiuihu
回复 支持 反对

使用道具 举报

4

主题

1万

回帖

60

积分

注册会员

Rank: 2

积分
60
发表于 2023-3-18 07:03:41 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-5-25 21:01:32 | 显示全部楼层
还不错啊
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-9-28 07:06:02 | 显示全部楼层
的vgdsvsdvdsvdsvds
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

68

积分

注册会员

Rank: 2

积分
68
发表于 2024-3-8 01:38:03 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2024-3-14 17:16:41 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2024-5-28 11:15:36 | 显示全部楼层
2222222222222222
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

294

积分

中级会员

Rank: 3Rank: 3

积分
294
发表于 2024-5-29 23:33:57 | 显示全部楼层
很不错的样子
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2025-2-1 12:57 , Processed in 0.093041 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表