用jQuery实现弹出窗口/弹出div层

原文链接:http://hi.baidu.com/awz_tiger/item/863cfc10c4bb0f6171d5e8d9

http://blog.163.com/qiuxinke2006@126/blog/static/24885580201131763139536/

http://hi.baidu.com/kilwin/blog/item/f4cfaf2695375920c9955947.html

 

  用div层代替传统的弹出窗口已经变得很普遍了,因为div层是网页的一部分,不会像传统的弹出窗口那样容易被浏览器拦截。我们常见的弹出div层就是在页面加载后或者点击页面的某个链接时弹出一个div层,同时页面的其他地方会变灰。那么今天我就试着用jquery来实现这个效果。


  通过今天的jquery实例学习,我们要达到这样的效果:点击页面的链接,弹出一个div层,同时页面的其他部分变灰并且不能点击;无论是改变浏览器窗口大小还是下拉滚动条,这个弹出层都能始终保持居中;点击页面的关闭按钮,弹出层消失,页面恢复原样。

  点击查看效果>>>

  这里借鉴之前的一篇文章《基于jQuery的固定飘浮层》,使弹出窗口可以始终固定在浏览器的正中间。在这里有一个要点,就是如何使页面的其他地方在弹出窗口的同时变灰。我使用的方法就是在点击链接弹出div层的时候,给页面增加一个div层,这个层就“负责”使页面变灰。点击关闭后,删除这个层就能使页面恢复原样。不知道有没有更好的方法,有的话请告诉我哦。

  其他应该没什么问题了,还是很简单的,在这里顺便贴上jquery代码:
  
$(function(){var screenwidth,screenheight,mytop,getPosLeft,getPosTopscreenwidth = $(window).width();screenheight = $(window).height();//获取滚动条距顶部的偏移mytop = $(document).scrollTop();//计算弹出层的leftgetPosLeft = screenwidth/2 - 260;//计算弹出层的topgetPosTop = screenheight/2 - 150;//css定位弹出层$("#box").css({"left":getPosLeft,"top":getPosTop});//当浏览器窗口大小改变时...$(window).resize(function(){screenwidth = $(window).width();screenheight = $(window).height();mytop = $(document).scrollTop();getPosLeft = screenwidth/2 - 260;getPosTop = screenheight/2 - 150;$("#box").css({"left":getPosLeft,"top":getPosTop+mytop});});//当拉动滚动条时...$(window).scroll(function(){screenwidth = $(window).width();screenheight = $(window).height();mytop = $(document).scrollTop();getPosLeft = screenwidth/2 - 260;getPosTop = screenheight/2 - 150;$("#box").css({"left":getPosLeft,"top":getPosTop+mytop});});//点击链接弹出窗口$("#popup").click(function(){$("#box").fadeIn("fast");//获取页面文档的高度var docheight = $(document).height();//追加一个层,使背景变灰$("body").append("<div id='greybackground'></div>");$("#greybackground").css({"opacity":"0.5","height":docheight});return false;});//点击关闭按钮$("#closeBtn").click(function() {$("#box").hide();//删除变灰的层$("#greybackground").remove();return false;});});



  源代码
<!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" />  
<title>jquery pop up</title>  
<script src="jquery-ui-1.10.3/jquery-1.9.1.js" type="text/javascript"></script><style type="text/css">  * { margin:0; padding:0;  } #wrapper {  height:1000px;  }  #box {  display:none;   position:absolute;  width:520px;  height:300px; border:#f60 solid 2px; z-index:200;  background:#fff;  }  #closeBtn {  position:absolute;  right:10px;  top:10px;  cursor:pointer;  }  #greybackground {  background:#000;  display:block;  z-index:100;  width:100%;  position:absolute;  top:0;  left:0; }  </style>  
</head><body><div id="wrapper">   <a href="http://www.netchina.com.cn" id="popup">点击弹出div窗口</a>   </div><div id="box"><span id="closeBtn">关闭</span></div><script type="text/javascript">  
$(function(){  var screenwidth,screenheight,mytop,getPosLeft,getPosTop;screenwidth = $(window).width();  screenheight = $(window).height();  mytop = $(document).scrollTop();  getPosLeft = screenwidth/2 - 260;  getPosTop = screenheight/2 - 150;  $("#box").css({"left":getPosLeft,"top":getPosTop}); $(window).resize(function(){  screenwidth = $(window).width();  screenheight = $(window).height();  mytop = $(document).scrollTop();  getPosLeft = screenwidth/2 - 260;  getPosTop = screenheight/2 - 150;  $("#box").css({"left":getPosLeft,"top":getPosTop+mytop});  });  $(window).scroll(function(){  screenwidth = $(window).width();  screenheight = $(window).height();  mytop = $(document).scrollTop();  getPosLeft = screenwidth/2 - 260;  getPosTop = screenheight/2 - 150;  $("#box").css({"left":getPosLeft,"top":getPosTop+mytop});  });  $("#popup").click(function(){  $("#box").fadeIn("fast");  $("body").append("<div id='greybackground'></div>");  var documentheight = $(document).height();  $("#greybackground").css({"opacity":"0.5","height":documentheight});  return false;  });  $("#closeBtn").click(function() { $("#box").hide();  $("#greybackground").remove();  return false;  });  });  </script></body>
</html>

  

JavaScript实现弹出窗口实质上就是在浏览器上画了一个方形区域,并在开始时将其隐藏,只是到某个JavaScript事件时才通过修改css的属性值来将其显示出来。

其大致步骤为:

创建一个装载弹出窗口的div

<html>   
<head>   
<title>jQuery实例1:浮动窗口</title>   
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">   
<style type="text/css">
#win{    
/*边框*/   
border:1px red solid;    
/*窗口的高度和宽度*/   
width : 300px;    
height: 200px;    
/*窗口的位置*/   
position : absolute;    
top : 100px;    
left: 350px;    
/*开始时窗口不可见*/   
display : none;    
}    
/*控制背景色的样式*/   
#title{    
background-color : blue;    
color : red;    
/*控制标题栏的左内边距*/   
padding-left: 3px;    
}    
#cotent{    
padding-left : 3px;    
padding-top :  5px;    
}    
/*控制关闭按钮的位置*/   
#close{    
margin-left: 188px;    
/*当鼠标移动到X上时,出现小手的效果*/   
cursor: pointer;    
}   
#win{  
/*边框*/  
border:1px red solid;  
/*窗口的高度和宽度*/  
width : 300px;  
height: 200px;  
/*窗口的位置*/  
position : absolute;  
top : 100px;  
left: 350px;  
/*开始时窗口不可见*/  
display : none;  
}  
/*控制背景色的样式*/  
#title{  
background-color : blue;  
color : red;  
/*控制标题栏的左内边距*/  
padding-left: 3px;  
}  
#cotent{  
padding-left : 3px;  
padding-top :  5px;  
}  
/*控制关闭按钮的位置*/  
#close{  
margin-left: 188px;  
/*当鼠标移动到X上时,出现小手的效果*/  
cursor: pointer;  
}   
</style>
<script type="text/javascript" src="jquery-ui-1.10.3/jquery-1.9.1.js"></script>
<script type="text/javascript">
function showWin(){    
/*找到div节点并返回*/   
var winNode = $("#win");    
//方法一:利用js修改css的值,实现显示效果    
// winNode.css("display", "block");    
//方法二:利用jquery的show方法,实现显示效果    
// winNode.show("slow");    
//方法三:利用jquery的fadeIn方法实现淡入    
winNode.fadeIn("slow");    
}    
function hide(){
var winNode = $("#win");    
//方法一:修改css的值    
//winNode.css("display", "none");    
//方法二:jquery的fadeOut方式    
winNode.fadeOut("slow");    
//方法三:jquery的hide方法    
winNode.hide("slow");    
}  
</script>
</head>   
<body>   
</body>   
<a onClick="showWin()" href="#" mce_href="#">弹出窗口</a>   
<div id="win">   
<div id="title">我是标题栏!<span id="close" onClick="hide()">X</span></div>   
<div id="content">我是一个窗口!</div>   
</div>   
</html> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276614.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模块定义文件导出类_浓缩的就是精华——ES6模块精炼讲解

概述在 ES6 前&#xff0c; 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库&#xff0c; 和基于 CMD 规范的模块化库)。ES6 引入了模块化&#xff0c;其设计思想是在编译时就能确定模块的依赖关系&#xff0c;以及输入和输出的变量。ES6 的模块化分为…

关于快速开发和设计应用系统的一些个人的意见

作为程序员&#xff0c;经常会为我们的客户去开发和设计各种应用系统&#xff0c;比如OA /CRM/物流调度/客户服务/电子政务。。。及各种管理信息系统&#xff0c;我们经常会去开发和实现这样的一些系统&#xff0c;每周、每月、每年经常都要去做这样的一些开发工作&#xff0c;…

Jquery1.6版本后attr的变化

原文链接&#xff1a;http://www.cnblogs.com/-run/archive/2011/11/16/2251569.html Jquery1.6版本后attr的变化 Jquery1.6版本后 attr 改动后的效果&#xff1a; jquery1.6版本&#xff1a; 下文来自www.jquery.com The difference betweenattributes and properties can b…

idea main scanner 输入_哇晒,你竟然不知道idea的 Live Templates

最近公司新近来一名程序猿&#xff0c;在写代码时&#xff0c;美美写到System.out.println的时候&#xff0c;都要一母不差的用键盘敲上去&#xff0c;我问他你之前有用过eclipse中的快捷方法syso吗&#xff1f;于是&#xff0c;我给他介绍了一下&#xff0c;在idea中如何自定义…

Android开发需要了解的 IM 知识

引言即便在通讯如此发达的今天&#xff0c;IM 也依然是诸多场景下非常重要的基础能力。因此做为 一名 Android 开发&#xff0c;不可避免的会遇到一些IM 相关的需求或问题。本文以一个Android开发的角度来讲述IM 开发相关的基础知识。想要阅读更多技术干货、行业洞察&#xff0…

偷梁换柱做自己的封装系统

偷梁换柱做自己的封装系统&#xff01;菜鸟一开始都想把自己的信息加到系统里&#xff0c;但封装系统只会一点&#xff01;但我们可“拿来”&#xff0c;我们可以用偷梁换柱的方法来修改别人的系统&#xff0c;本文以雨林的GHOST5.0系统为例。一、准备工作1、当然是下载一个自己…

JQuery 1.6+ checkbox 状态选择

示例&#xff1a; HTML: <form><table><tr><td><input type"checkbox" id"select_all"/></td></tr><tr><td><input type"checkbox" name"select[]"/></td></…

台电u盘量产工具_简单几步,让U盘起死回生

如今&#xff0c;虽说云存储风靡&#xff0c;但U盘仍存在价值&#xff0c;毕竟在很多场合并不方便上网&#xff0c;即便如此网上存储有时也并不方便&#xff0c;也不安全。与此同时&#xff0c;如果是大文件存储&#xff0c;云盘上传和下载速度非常慢&#xff0c;并不适合海量数…

PXC集群常见错误(一)

欢迎关注MySQL 8.0必知必会系列课程。MySQL8.0必知必会-自动化部署 https://edu.51cto.com/course/16368.htmlMySQL8.0必知必会之参数标准化配置 https://edu.51cto.com/course/16358.html1.Cant start server: Bind on TCP/IP port: Address already in use…

获取GridView中RowCommand的当前选中行的索引或主键Id

获取GridView中RowCommand的当前索引行 前台添加一模版列,里面添加一个LinkButton前台 (如果在后台代码中用e.CommandArgument取值的话前台代码就必须在按钮中设置CommandArgument的值&#xff0c;值为绑定的数据库字段<asp:TemplateField HeaderText"操作"> …

系统架构师 项目经理 哪个更有前景_中央空调加地暖与五恒系统,哪个更省钱?...

每逢严冬酷暑,人们都会感叹空调是最伟大的发明,并且随着科技发展还在不断进化。从烤火取暖到空调和地暖的供暖,从纸扇电扇的吹风到空调的制冷,人们的需求正在不断提高,于是,为了满足人们的需求&#xff0c;市场上又衍生出了家装五恒系统。 恒温、恒湿、恒氧、恒洁、恒静这…

软件架构基本原则

软件架构本质上是绘制一幅复杂素描所打的草稿&#xff0c;我还说&#xff0c;如果你罩得住&#xff0c;可以不需要这个草稿。但这只是“理论上”&#xff0c;我们写软件&#xff0c;基本上不是在写只有几千行的代码的小程序&#xff0c;而是写数千万行的大型程序。《道德经》说…

Smarty目录结构和子目录路径问题

原文链接&#xff1a;http://bbs.csdn.net/topics/80223905 问题 1).最初在模板文件中使用了绝对路径&#xff08;相对于站点根的路径 ).如在system_info.tpl中图片是这样显示的<img src"/templates/default/images/logo.gif"/>这样当系统发布时&#xff0c;…

c++直角坐标系与极坐标系的转换_一篇阅读量高达2百6十多万的关于坐标系和投影的相关知识探讨...

本文转载于CSDN作者rsyaoxin这是一篇关于坐标和投影的「神文」截止目前浏览量已达2698239是相关文章中不可打破的神话...文末有本文作者推荐的两款坐标转换的小工具下载链接回想一下&#xff0c;接触遥感专业也有几个年头了&#xff0c;而现在越来越偏离遥感了&#xff0c;突然…

c# xmlhttp POST提取远程webservice数据

public string cancel(string StudentID,string Mobile){string datanull;data "<?xml version1.0 encodingutf-8?><soap:Envelope xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlns:xsdhttp://www.w3.org/2001/XMLSchema xmlns:soaphttp://schemas.…

Javascript实现的左右滑动菜单

原文链接&#xff1a;http://www.cnblogs.com/miqi2214/archive/2009/04/28/1445308.html Javascript实现的左右滑动菜单 先看Demo便于理解&#xff1a;请大家往这里看 业务需求&#xff1a; 1. 菜单个数不固定&#xff0c;当菜单个数长度小于给定范围宽度&#xff0c;则左右移…

查询用户分配角色TCODE

s_bce_68001419 转载于:https://www.cnblogs.com/yangliang/archive/2009/04/13/1434862.html

query string parameters什么意思_public static void main(String[] args) 是什么意思?(转)...

public static void main(String[] args)&#xff0c;是java程序的入口地址&#xff0c;java虚拟机运行程序的时候首先找的就是main方法。一、这里要对main函数讲解一下&#xff0c;参数String[] args是一个字符串数组&#xff0c;接收来自程度序执行时传进来的参数。如果是在控…

经典算法:位图排序

最近发现一个有趣的排序算法&#xff0c;通过位图来完成排序。位图排序其实就是基数排序&#xff0c;只不过位图排序的下标是比特位。 问题描述 输入&#xff1a;一个最多包含n个正整数的文件&#xff0c;每个数都小于n&#xff0c;其中n10^7。如果在输入文件中有任何正数重复出…

PHP中删除目录的三种方法

原文链接&#xff1a;http://www.chinaz.com/program/2008/1022/41645.shtml PHP中删除目录的三种方法 1、递规法&#xff1a;利用递归一层一层的删。 deleteDir(&#xff04;dir) { if (rmdir(&#xff04;dir)false && is_dir(&#xff04;dir)) {if (&#xff04;d…