jQuery实现弹出窗口弹出div层的实例代码


Posted in Javascript onJanuary 09, 2017

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

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

其他应该没什么问题了,还是很简单的,在这里顺便贴上jQuery代码:

$(function(){ 
var screenwidth,screenheight,mytop,getPosLeft,getPosTop 

screenwidth = $(window).width(); 

screenheight = $(window).height(); 

//获取滚动条距顶部的偏移 

mytop = $(document).scrollTop(); 

//计算弹出层的left 

getPosLeft = screenwidth/2 - 260; 

//计算弹出层的top 

getPosTop = screenheight/2 - 150; 

//css定位弹出层 

$("#box").css({"left":getPosLeft,"top":getPosTop}); 

//当浏览器窗口大小改变时... 

$(window).resize(function(){ 

<span style="white-space:pre">  </span>screenwidth = $(window).width(); 

<span style="white-space:pre">  </span>screenheight = $(window).height(); 

<span style="white-space:pre">  </span>mytop = $(document).scrollTop(); 

<span style="white-space:pre">  </span>getPosLeft = screenwidth/2 - 260; 

<span style="white-space:pre">  </span>getPosTop = screenheight/2 - 150; 

<span style="white-space:pre">  </span>$("#box").css({"left":getPosLeft,"top":getPosTop+mytop}); 

}); 

//当拉动滚动条时... 

$(window).scroll(function(){ 

<span style="white-space:pre">  </span>screenwidth = $(window).width(); 

<span style="white-space:pre">  </span>screenheight = $(window).height(); 

<span style="white-space:pre">  </span>mytop = $(document).scrollTop(); 

<span style="white-space:pre">  </span>getPosLeft = screenwidth/2 - 260; 

<span style="white-space:pre">  </span>getPosTop = screenheight/2 - 150; 

<span style="white-space:pre">  </span>$("#box").css({"left":getPosLeft,"top":getPosTop+mytop}); 

}); 

//点击链接弹出窗口 

$("#popup").click(function(){ 

<span style="white-space:pre">  </span>$("#box").fadeIn("fast"); 

<span style="white-space:pre">  </span>//获取页面文档的高度 

<span style="white-space:pre">  </span>var docheight = $(document).height(); 

<span style="white-space:pre">  </span>//追加一个层,使背景变灰 

<span style="white-space:pre">  </span>$("body").append("<div id='greybackground'></div>"); 

<span style="white-space:pre">  </span>$("#greybackground").css({"opacity":"0.5","height":docheight}); 

<span style="white-space:pre">  </span>return false; 

}); 

//点击关闭按钮 

$("#closeBtn").click(function() { 

<span style="white-space:pre">  </span>$("#box").hide(); 

<span style="white-space:pre">  </span>//删除变灰的层 

<span style="white-space:pre">  </span>$("#greybackground").remove(); 

<span style="white-space:pre">  </span>return false; 

}); 
});

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" /> 
<title>jquery pop up</title> 
<script src=http://blog.soso.com/qz.q/"jquery.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://blog.soso.com/qz.q/"#" id="popup">点击弹出div窗口</a> 
 </div> 
 <div id="box"> 
 <span style="white-space:pre"> </span><span id="closeBtn">关闭</span> 
 </div> 
</body> 
</html>

以上所述是小编给大家介绍的jQuery实现弹出窗口弹出div层的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery 指南/入门基础
Nov 30 Javascript
jquery 将disabled的元素置为enabled的三种方法
Jul 25 Javascript
在浏览器中获取当前执行的脚本文件名的代码
Jul 19 Javascript
鼠标经过tr时,改变tr当前背景颜色
Jan 13 Javascript
jQuery中bind(),live(),delegate(),on()绑定事件方法实例详解
Jan 19 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
浅谈Vue的基本应用
Dec 27 Javascript
bootstrap警告框示例代码分享
May 17 Javascript
Angularjs单选框相关的示例代码
Aug 17 Javascript
Angularjs 1.3 中的$parse实例代码
Sep 14 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
js实现小时钟效果
Mar 25 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
Aug 27 #Javascript
微信小程序 实战程序简易新闻的制作
Jan 09 #Javascript
jquery实现多次上传同一张图片
Jan 09 #Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 #Javascript
微信小程序 开发之快递查询功能的实现
Jan 09 #Javascript
vue日期组件 支持vue1.0和2.0
Jan 09 #Javascript
jQuery编写设置和获取颜色的插件
Jan 09 #Javascript
You might like
PHP4实际应用经验篇(9)
2006/10/09 PHP
php 用sock技术发送邮件的函数
2007/07/21 PHP
php 注释规范
2012/03/29 PHP
ThinkPHP之M方法实例详解
2014/06/20 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
PHP程序守护进程化实现方法详解
2020/07/16 PHP
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
前后台交互过程中json格式如何解析以及如何生成
2012/12/26 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
AJAX跨域请求json数据的实现方法
2013/11/11 Javascript
javascript中typeof的使用示例
2013/12/19 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
npm国内镜像 安装失败的几种解决方案
2017/06/04 Javascript
基于vue2框架的机器人自动回复mini-project实例代码
2017/06/13 Javascript
jQuery Jsonp跨域模拟搜索引擎
2017/06/17 jQuery
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
js中Array对象的常用遍历方法详解
2019/01/17 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
微信小程序背景音乐开发详解
2019/12/12 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
Vue实现手机计算器
2020/08/17 Javascript
js 函数性能比较方法
2020/08/24 Javascript
python使用matplotlib绘制热图
2018/11/07 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
Python基于network模块制作电影人物关系图
2020/06/19 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
关于Python错误重试方法总结
2021/01/03 Python
高中的自我鉴定
2013/12/16 职场文书
Kubernetes中Deployment的升级与回滚
2022/04/01 Servers