jQuery弹出窗口简单实现代码

前端之家收集整理的这篇文章主要介绍了jQuery弹出窗口简单实现代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

今天讲了Jquery的弹出窗口的组成和用法

先把引用文件代码写好:

var idzt = new Array();

var Window = function(config){

//ID不重复
idzt[x] = "zhuti"+x; //弹窗ID

//初始化,接收参数
this.config = {
width : config.width || 300,//宽度
height : config.height || 200,//高度
buttons : config.buttons || '',//默认无按钮
title : config.title || '标题',//标题
content : config.content || '内容',//内容
isMask : config.isMask == false?false:config.isMask || true,//是否遮罩
isDrag : config.isDrag == false?false:config.isDrag || true,//是否移动
};

//加载弹出窗口
var w = ($(window).width()-this.config.width)/2;
var h = ($(window).height()-this.config.height)/2;

var nr = "

";
$("body").append(nr);

//加载弹窗标题
var content ="

"+this.config.title+"
×
";
//加载弹窗内容
var nrh = this.config.height - 75;
content = content+"
"+this.config.content+"
";
//加载按钮
content = content+"
"+this.config.buttons+"
";

//将标题内容及按钮添加进窗口
$('#'+idzt[x]).html(content);

//创建遮罩层
if(this.config.isMask)
{
var zz = "

";
$("body").append(zz);
$("#zz").css('display','block');
}

//最大最小限制,以免移动到页面
var maxX = $(window).width()-this.config.width;
var maxY = $(window).height()-this.config.height;
var minX = 0,minY = 0;

//窗口移动
if(this.config.isDrag)
{
//鼠标移动弹出窗
$(".title").bind("mousedown",function(e){

var n = $(this).attr("bs"); //取标识

//使选中的到最上层
$(".zhuti").css("z-index",3);
$('#'+idzt[n]).css("z-index",4);

//取初始坐标
var endX = 0,//移动后X坐标
 endY = 0,//移动后Y坐标
 startX = parseInt($('#'+idzt[n]).css("left")),//弹出层的初始X坐标
 startY = parseInt($('#'+idzt[n]).css("top")),//弹出层的初始Y坐标
 downX = e.clientX,//鼠标按下时,鼠标的X坐标
 downY = e.clientY; //鼠标按下时,鼠标的Y坐标

//绑定鼠标移动事件
$("body").bind("mousemove",function(es){

 endX = es.clientX - downX + startX; //X坐标移动
 endY = es.clientY - downY + startY; //Y坐标移动

 //最大最小限制
 if(endX > maxX)
 {
  endX = maxX;
 } else if(endX < 0)
 {
  endX = 0;
 }
 if(endY > maxY)
 {
  endY = maxY;
 } else if(endY < 0)
 {
  endY = 0;
 }

 $('#'+idzt[n]).css("top",endY+"px");
 $('#'+idzt[n]).css("left",endX+"px");

 window.getSelection ? window.getSelection().removeAllRanges():document.selection.empty(); //取消选<a href="https://www.jb51.cc/tag/zhongwen/" target="_blank" class="keywords">中文</a>本

 });

});
//鼠标按键抬起,释放移动事件
$("body").bind("mouseup",function(){

$("body").unbind("mousemove");

});
}

//关闭窗口
$(".close").click(function(){

var m = this.getAttribute("bs"); //找标识
$('#'+idzt[m]).remove(); //移除弹窗
$('#zz').remove(); //移除遮罩

})

x++; //标识增加

}

这个JS文件把弹出窗口的内容,样式,位置,按钮,以及遮罩层都做了处理,在引用前好好看看里面的代码,最好都能弄懂,里面也做了详细的注释,希望可以帮的你。

下面是CSS样式表:

Box-shadow:0 0 5px white; overflow:hidden; color:#333; } .title { background-color:#3498db; vertical-align:middle; height:35px; width:100%; line-height:35px; text-indent:1em; } .close{ float:right; width:35px; height:35px; font-weight:bold; line-height:35px; vertical-align:middle; color:white; font-size:18px; } .close:hover { cursor:pointer; } .content { text-indent:1em; padding-top:10px; } .btnx { height:30px; width:100%; text-indent:1em; } .btn { height:28px; width:80px; float:left; margin-left:20px; color:#333; } #zz { width:100%; height:100%; opacity:0.15; display:none; background-color:#ccc; z-index:2; position:absolute; top:0px; left:0px; }

这个样式表把每个标签和所需要的样式都写好了,这样就能节省主要页面代码量,并且让主页面看起来非常的整齐,如果要改,只需要在CSS样式表中修改即可,注意:不管要引用什么文件,必须把Jquery文件放在最前面!!!

下面是主页面代码

无<a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a>文档