使用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 相关文章推荐
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
javascript CSS画图之基础篇
Jul 29 Javascript
javascript获取URL参数与参数值的示例代码
Dec 20 Javascript
javascript实现回到顶部特效
May 06 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
利用JQuery操作iframe父页面、子页面的元素和方法汇总
Sep 10 jQuery
jQuery实现简单的回到顶部totop功能示例
Oct 16 jQuery
django中使用vue.js的要点总结
Jul 07 Javascript
JS如何判断对象是否包含某个属性
Aug 29 Javascript
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
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反转字符串函数strrev()函数的用法
2012/02/04 PHP
PHP闭包(Closure)使用详解
2013/05/02 PHP
php去除HTML标签实例
2013/11/06 PHP
php object转数组示例
2014/01/15 PHP
php-redis中的sort排序函数总结
2015/07/08 PHP
php实现递归的三种基本方式
2020/07/04 PHP
PHP基于curl后台远程登录正方教务系统的方法
2016/10/14 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
javascript异步编程的4种方法
2014/02/19 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
AngularJS向后端ASP.NET API控制器上传文件
2016/02/03 Javascript
jQuery简单创建节点的方法
2016/09/09 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
JS如何获取地址栏的参数实例讲解
2018/10/06 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
详解js静态检查工具eslint配置文件
2018/11/23 Javascript
详解微信小程序实现仿微信聊天界面(各种细节处理)
2019/02/17 Javascript
Nodejs封装类似express框架的路由实例详解
2020/01/05 NodeJs
使用JavaScript通过前端发送电子邮件
2020/05/22 Javascript
详解Java中String JSONObject JSONArray List转换
2020/11/13 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
pymongo为mongodb数据库添加索引的方法
2015/05/11 Python
详解Python数据分析--Pandas知识点
2019/03/23 Python
在 Python 中使用 MQTT的方法
2020/08/18 Python
美国地毯购买网站:Rugs USA
2019/02/23 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
饭店工作计划书
2014/01/10 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
四风问题班子对照检查材料
2014/09/27 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript
python绘制简单直方图(质量分布图)的方法
2022/04/21 Python
Spring Boot项目如何优雅实现Excel导入与导出功能
2022/06/10 Java/Android