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 相关文章推荐
JAVASCRIPT  THIS详解 面向对象
Mar 25 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
Mar 28 Javascript
JavaScript解析json格式数据简单示例
Dec 09 Javascript
jQuery中ajax的load()方法用法实例
Dec 26 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
jQuery根据元素值删除数组元素的方法
Jun 24 Javascript
Bootstrap登陆注册页面开发教程
Jul 12 Javascript
又一款js时钟!transform实现时钟效果
Aug 15 Javascript
详解本地Node.js服务器作为api服务器的解决办法
Feb 28 Javascript
Angular中ng-bind和ng-model的区别实例详解
Apr 10 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
May 14 Javascript
JS中队列和双端队列实现及应用详解
Sep 29 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数组输出html表格的方法
2014/02/24 PHP
php数组添加元素方法小结
2014/12/20 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
2015/07/03 PHP
PHP实现生成模糊图片的方法示例
2017/12/21 PHP
JS(jQuery)实现聊天接收到消息语言自动提醒功能详解【提示“您有新的消息请注意查收”】
2019/04/16 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
jquery CSS选择器笔记
2010/03/29 Javascript
js history对象简单实现返回和前进
2013/10/30 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
js 去掉字符串前后空格实现代码集合
2017/03/25 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
详解javascript函数写法大全
2019/03/25 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
JS字符串与二进制的相互转化实例代码详解
2019/06/28 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python内置函数的用法实例教程
2014/09/08 Python
python中sys.argv参数用法实例分析
2015/05/20 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Django 用户认证组件使用详解
2019/07/23 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
浅析移动设备HTML5页面布局
2015/12/01 HTML / CSS
巴西宠物商店:Cobasi
2019/04/19 全球购物
abstract class和interface有什么区别
2013/08/04 面试题
团委竞选演讲稿
2014/04/24 职场文书
养成教育经验材料
2014/05/26 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
酒店优秀员工推荐信
2015/03/24 职场文书
发票退票证明
2015/06/24 职场文书
python自动化操作之动态验证码、滑动验证码的降噪和识别
2021/08/30 Python
通过T-SQL语句创建游标与实现数据库加解密功能
2022/03/16 SQL Server
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL