使用JavaScript实现弹出层效果的简单实例


Posted in Javascript onMay 31, 2016

声明

阅读本文需要有一定的HTML、CSS和JavaScript基础

设计

实现弹出层效果的思路非常简单:将待显示的内容先隐藏,在触发某种条件后(如点击按钮),将原本隐藏的内容显示出来。

实现

<!DOCTYPE html>
<html>
<head>
  <title>Window对象</title>
  <meta charset="utf-8">
</head>
<body>
<a href="http://www.baidu.com">百度一下</a>
<button type="button" id="open">打开弹出层</button>
<div style="display: none;background: lightblue;border:1px solid green;" id="toast">     <!--   设置display属性为none以隐藏内容       -->
  <p>这里是弹出层内容</p>
  <button type="button" id="close">关闭弹出层</button>
</div>
<script type="text/javascript">
  var toast = document.getElementById("toast");
  document.getElementById("open").onclick = function(e){      <!--  定义点击事件显示隐藏内容     -->
    toast.style.display = "block";
    toast.style.position = "fixed";
    var winWidth = window.innerWidth;
    var winHeight = window.innerHeight;
    var targetWidth = toast.offsetWidth;
    var targetHeight = toast.offsetHeight;
    toast.style.top = (winHeight - targetHeight) / 2 + "px";
    toast.style.left = (winWidth - targetWidth) / 2 + "px";
  }
  document.getElementById("close").onclick = function(e){        <!--   将显示的内容再次隐藏     -->
    toast.style.display = "none";
  }
</script>
</body>
</html>

显示效果如下:

使用JavaScript实现弹出层效果的简单实例

但是我们可以注意到,在弹出隐藏内容之后我们还是可以通过链接进入百度页面。为了防止这种情况的发生,我们可以提供遮罩层将原先的页面内容全部遮住。代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>Window对象</title>
  <meta charset="utf-8">
</head>
<body>
<a href="http://www.baidu.com">百度一下</a>
<button type="button" id="open">打开弹出层</button>
<div id="cover" style="display: none;position: fixed;width: 100%;height: 100%;top:0px;left:0px;background: gray;">    <!-- 通过遮罩层遮住背景 -->
  <div style="background: lightblue;border:1px solid green;" id="toast">     <!-- 设置display属性为none以隐藏内容       -->
  <p>这里是弹出层内容</p>
    <button type="button" id="close">关闭弹出层</button>

</div>
</div>
<script type="text/javascript">
  var toast = document.getElementById("toast");
  var cover = document.getElementById("cover");
  document.getElementById("open").onclick = function(e){      <!--  定义点击事件显示隐藏内容     -->
    cover.style.display = "block";
    toast.style.position = "fixed";
    var winWidth = window.innerWidth;
    var winHeight = window.innerHeight;
    var targetWidth = toast.offsetWidth;
    var targetHeight = toast.offsetHeight;
    toast.style.top = (winHeight - targetHeight) / 2 + "px";
    toast.style.left = (winWidth - targetWidth) / 2 + "px";
  }
  document.getElementById("close").onclick = function(e){        <!--   将显示的内容再次隐藏     -->
    cover.style.display = "none";
  }
</script>
</body>
</html>

这是再次测试下效果,如下图:

使用JavaScript实现弹出层效果的简单实例

总结

上述内容只是简单实现了弹出层效果,但是通过添加更多的代码也可以在此基础上实现更复杂的功能。

以上这篇使用JavaScript实现弹出层效果的简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery键盘事件介绍
Jan 31 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
Jun 24 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 Javascript
JavaScript学习笔记之DOM基础 2.4
Aug 14 Javascript
jquery中表单 多选框的一种巧妙写法
Sep 06 Javascript
js查看一个函数的执行时间实例代码
Sep 12 Javascript
node.js学习之事件模块Events的使用示例
Sep 28 Javascript
vue监听对象及对象属性问题
Aug 20 Javascript
浅谈layer弹出层按钮颜色修改方法
Sep 11 Javascript
Vue中img的src是动态渲染时不显示的解决
Nov 14 Javascript
Angular利用HTTP POST下载流文件的步骤记录
Jul 26 Javascript
javascript事件处理模型实例说明
May 31 #Javascript
jQuery基础知识点总结(必看)
May 31 #Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 #Javascript
javascript小数精度丢失的完美解决方法
May 31 #Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 #Javascript
javascript基本语法
May 31 #Javascript
jquery 无限极下拉菜单的简单实例(精简浓缩版)
May 31 #Javascript
You might like
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP高自定义性安全验证码代码
2011/11/27 PHP
iis下php mail函数的sendmail配置方法(官方推荐)
2012/04/25 PHP
php 判断数组是几维数组
2013/03/20 PHP
浅谈Eclipse PDT调试PHP程序
2014/06/09 PHP
ThinkPHP实现递归无级分类――代码少
2015/07/29 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
获取jqGrid中选择的行的数据
2016/11/30 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
详解a++和++a的区别
2017/08/30 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
微信小程序 scroll-view 水平滚动实现过程解析
2019/10/12 Javascript
微信小程序自定义联系人弹窗
2020/05/26 Javascript
Python 文件重命名工具代码
2009/07/26 Python
深入理解Python中装饰器的用法
2016/06/28 Python
python实现壁纸批量下载代码实例
2018/01/25 Python
python2与python3的print及字符串格式化小结
2018/11/30 Python
django之自定义软删除Model的方法
2019/08/14 Python
python TCP包注入方式
2020/05/05 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
DNA测试:Orig3n
2019/03/01 全球购物
幼儿园教师师德师风演讲稿:爱我所爱 无悔青春
2014/09/10 职场文书
项目经理岗位职责
2015/01/31 职场文书
上课迟到检讨书
2015/05/06 职场文书
中学社团活动总结
2015/05/07 职场文书
《日月潭》教学反思
2016/02/20 职场文书
分家协议书范本
2016/03/22 职场文书
2016年综治和平安建设宣传月活动总结
2016/04/01 职场文书
人民币使用说明书
2019/04/17 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android