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 相关文章推荐
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
JavaScript 事件冒泡简介及应用
Jan 11 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
JavaScript不刷新实现浏览器的前进后退功能
Nov 05 Javascript
基于RequireJS和JQuery的模块化编程——常见问题全面解析
Apr 14 Javascript
jQuery.Callbacks()回调函数队列用法详解
Jun 14 Javascript
清除js缓存的多种方法总结
Dec 09 Javascript
vue 简单自动补全的输入框的示例
Mar 12 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
angularjs http与后台交互的实现示例
Dec 21 Javascript
微信小程序图片加载失败时替换为默认图片的方法
Dec 09 Javascript
vue中用 async/await 来处理异步操作
Jul 18 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
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php设计模式 State (状态模式)
2011/06/26 PHP
解析php扩展php_curl.dll不加载的解决方法
2013/06/26 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
ThinkPHP应用模式扩展详解
2014/07/16 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
PHP计算日期相差天数实例分析
2016/02/23 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
CSS+JS构建的图片查看器
2006/07/22 Javascript
jQuery 快速结束当前正在执行的动画
2013/11/20 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
2016/07/20 Javascript
实例浅析js的this
2016/12/11 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
基于 Immutable.js 实现撤销重做功能的实例代码
2018/03/01 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
layui动态渲染生成select的option值方法
2019/09/23 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python比较2个xml内容的方法
2015/05/11 Python
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
详解C++编程中一元运算符的重载
2016/01/19 Python
Python+树莓派+YOLO打造一款人工智能照相机
2018/01/02 Python
pycharm修改file type方式
2019/11/19 Python
python循环嵌套的多种使用方法解析
2019/11/29 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
css3 按钮 利用css3实现超酷下载按钮
2013/03/18 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
网页美工求职信
2014/02/15 职场文书
企业出纳岗位职责
2014/03/12 职场文书
岗位说明书怎么写
2014/07/30 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
绵山导游词
2015/02/05 职场文书
医院志愿者活动总结
2015/05/06 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
生日赠语
2015/06/23 职场文书